Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion cogs/basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ async def forceplay(self, ctx: commands.Context, *, query: str, start: str = "0"
if player.queue._repeat.mode == voicelink.LoopType.TRACK:
await player.set_repeat(voicelink.LoopType.OFF)

await player.stop() if player.is_playing else await player.do_next()
await player.stop(intent=voicelink.AttemptIntent.FORCEPLAY) 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)
Expand Down Expand Up @@ -418,6 +418,7 @@ async def skip(self, ctx: commands.Context, index: int = 0):

if index:
player.queue.skipto(index)
player.queue.prepare_user_reselect()

await send_localized_message(ctx, "player.controls.skip.success", ctx.author)
if player.queue._repeat.mode == voicelink.LoopType.TRACK:
Expand Down Expand Up @@ -447,9 +448,11 @@ async def back(self, ctx: commands.Context, index: int = 1):

if not player.is_playing:
player.queue.backto(index)
player.queue.prepare_user_reselect()
await player.do_next()
else:
player.queue.backto(index + 1)
player.queue.prepare_user_reselect()
await player.stop()

await send_localized_message(ctx, "player.controls.back.success", ctx.author)
Expand Down
15 changes: 5 additions & 10 deletions cogs/listeners.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ async def restore_last_session_players(self) -> None:
decoded_track = voicelink.Track.decode(track_id)
requester = channel.guild.get_member(track_data.get("requester_id"))
track = voicelink.Track(track_id=track_id, info=decoded_track, requester=requester)
player.queue._queue.append(track)
player.queue.put(track)

# Restore queue settings.
player.queue._position = queue_data.get("position", 0) - 1
Expand Down Expand Up @@ -131,21 +131,16 @@ async def restore_last_session_players(self) -> None:
func.logger.error("Failed to remove session file: %s", Config.LAST_SESSION_FILE_DIR, exc_info=del_error)

@commands.Cog.listener()
async def on_voicelink_track_end(self, player: voicelink.Player, track, _):
await player.do_next()
async def on_voicelink_track_end(self, player: voicelink.Player, track, reason):
await player.handle_track_end(track, reason)

@commands.Cog.listener()
async def on_voicelink_track_stuck(self, player: voicelink.Player, track, _):
await asyncio.sleep(10)
await player.do_next()
await player.handle_track_stuck(track)

@commands.Cog.listener()
async def on_voicelink_track_exception(self, player: voicelink.Player, track, error: dict):
try:
player._track_is_stuck = True
await player.context.send(f"{error['message']} The next song will begin in the next 5 seconds.", delete_after=10)
except:
pass
await player.handle_track_exception(track, error)

@commands.Cog.listener()
async def on_voice_state_update(self, member: discord.Member, before: discord.VoiceState, after: discord.VoiceState):
Expand Down
Loading