diff --git a/musicbot/utils/mixplayer/player.py b/musicbot/utils/mixplayer/player.py index 4ea2d3f..935b7e4 100644 --- a/musicbot/utils/mixplayer/player.py +++ b/musicbot/utils/mixplayer/player.py @@ -6,6 +6,7 @@ from lavalink import AudioTrack, DefaultPlayer, Node from lavalink.events import QueueEndEvent, TrackEndEvent, TrackExceptionEvent, TrackStartEvent, TrackStuckEvent from lavalink.filters import Equalizer, Timescale +from lavalink.server import EndReason from .mixqueue import MixQueue @@ -209,7 +210,13 @@ def enable_looping(self, looping: bool): async def handle_event(self, event): """Handles the given event as necessary.""" if isinstance(event, (TrackStuckEvent, TrackExceptionEvent)) or \ - isinstance(event, TrackEndEvent) and event.reason == 'FINISHED': + (isinstance(event, TrackEndEvent) and event.reason.may_start_next()): + if isinstance(event, (TrackStuckEvent, TrackExceptionEvent)): + self.logger.debug("Event stuck or except: %s" % event) + if isinstance(event, TrackEndEvent) and event.reason.may_start_next(): + self.logger.debug("Event end: %s, %s, %s" % (event, event.reason, event.reason.may_start_next())) + if event.track is not None: + self.logger.debug("Event end track: %s, pos: %s" % (event.track, event.track.position)) self.logger.debug("Track ended, clearing votes") self.skip_voters.clear() for _, votes in self.voteables.items():