private async Task OnTrackFinished(LavaPlayer player, LavaTrack track, TrackEndReason reason) { if (!reason.ShouldPlayNext()) { return; } if (!player.Queue.TryDequeue(out var item) || !(item is AudioTrack nextTrack)) { await player.TextChannel?.SendMessageAsync($"There are no more items left in queue."); return; } await player.PlayAsync(nextTrack); await player.TextChannel.SendMessageAsync($"Finished playing: {track.ToString()}\nNow playing: {nextTrack.ToString()}"); await player.TextChannel.SendMessageAsync(player.ObjectToString()); }