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); }