diff --git a/cogs/music/__init__.py b/cogs/music/__init__.py index df723a5..4c2b071 100644 --- a/cogs/music/__init__.py +++ b/cogs/music/__init__.py @@ -12,6 +12,7 @@ from cogs.music.interactions import MusicCommands from cogs.music.interactions import QUEUE_SIZE from cogs.music.voice_client import LavalinkVoiceClient from utils.classes import BaseCog +from utils.log import logger if typing.TYPE_CHECKING: from bot import TuneBot @@ -46,13 +47,19 @@ class MusicCog(BaseCog, name="Music"): guild = self.bot.get_guild(guild_id) await guild.voice_client.disconnect(force=True) elif isinstance(event, lavalink.events.TrackEndEvent): - await helper.fill_player_queue(self.bot, event.player, 1) channel_id = int(event.player.fetch("channel")) channel: TextChannel = self.bot.get_channel(channel_id) + await helper.fill_player_queue(self.bot, event.player, 1) event.player.append_history(event.track) - embed = track_embed.create_track_embed( - event.player.current, event.player.queue, event.player.history - ) + + if event.reason == "FINISHED": + queue = event.player.queue[1:] + current = event.player.queue[0] + else: + queue = event.player.queue + current = event.player.current + + embed = track_embed.create_track_embed(current, queue, event.player.history) await channel.send(embed=embed) diff --git a/cogs/music/track_embed.py b/cogs/music/track_embed.py index 31a3865..2a6096f 100644 --- a/cogs/music/track_embed.py +++ b/cogs/music/track_embed.py @@ -31,21 +31,26 @@ def create_track_embed( queue: typing.Sequence["AudioTrack"], history: typing.Sequence["AudioTrack"], ) -> discord.Embed: + embed_width = 52 embed = discord.Embed( title="Now playing...", colour=colors["embed"], ) - embed.description = format_track(current) + embed.description = format_track(current, max_length=embed_width) if len(queue) > 0: - upcoming_fmt = "\n".join(format_track(track) for track in queue) + upcoming_fmt = "\n".join( + format_track(track, max_length=embed_width) for track in queue + ) else: upcoming_fmt = "No tracks have been queued yet..." embed.add_field(name="Coming up", value=upcoming_fmt, inline=False) if len(history) > 0: - history_fmt = "\n".join(format_track(track) for track in history) + history_fmt = "\n".join( + format_track(track, max_length=embed_width) for track in history + ) else: history_fmt = "No history yet..." embed.add_field(name="Previously played", value=history_fmt, inline=False)