From fc7e92658d8df49cebd0a4309b207010fa5bd227 Mon Sep 17 00:00:00 2001
From: NycroV <83246959+NycroV@users.noreply.github.com>
Date: Sat, 12 Oct 2024 23:50:02 -0400
Subject: [PATCH] Fix "Adding a playlist via 'QueuedLavalinkPlayerExtensions'
does not work" (#188)
* Remove null propagation from queued extensions
* Add documentation
---
.../Extensions/QueuedLavalinkPlayerExtensions.cs | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/Lavalink4NET/Extensions/QueuedLavalinkPlayerExtensions.cs b/src/Lavalink4NET/Extensions/QueuedLavalinkPlayerExtensions.cs
index e8a99baf..81b0ef41 100644
--- a/src/Lavalink4NET/Extensions/QueuedLavalinkPlayerExtensions.cs
+++ b/src/Lavalink4NET/Extensions/QueuedLavalinkPlayerExtensions.cs
@@ -8,16 +8,25 @@
public static class QueuedLavalinkPlayerExtensions
{
+ ///
+ /// Adds a to the player's queue.
+ /// Returns the index of the track in the queue (or the last track added to the queue if is a playlist)
+ ///
+ /// The player to enqueue the load result to.
+ /// The load result you want to enqueue.
+ /// The cancellation token.
+ /// The index of the track in the queue (or the last track added to the queue if is a playlist)
+ /// When the contains no tracks.
public static async ValueTask PlayAsync(this IQueuedLavalinkPlayer player, TrackLoadResult loadResult, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
- var queueOffset = default(int?);
+ int? queueOffset = default;
if (loadResult.Playlist is null)
{
// Single track
- queueOffset ??= await player
+ queueOffset = await player
.PlayAsync(loadResult.Track!, cancellationToken: cancellationToken)
.ConfigureAwait(false);
}
@@ -26,7 +35,7 @@ public static async ValueTask PlayAsync(this IQueuedLavalinkPlayer player,
// Playlist
foreach (var track in loadResult.Tracks)
{
- queueOffset ??= await player
+ queueOffset = await player
.PlayAsync(track, cancellationToken: cancellationToken)
.ConfigureAwait(false);
}