diff --git a/osu.Game/Online/Multiplayer/IndexPlaylistScoresRequest.cs b/osu.Game/Online/Multiplayer/IndexPlaylistScoresRequest.cs
index c435dc6030..b43614bf6c 100644
--- a/osu.Game/Online/Multiplayer/IndexPlaylistScoresRequest.cs
+++ b/osu.Game/Online/Multiplayer/IndexPlaylistScoresRequest.cs
@@ -3,19 +3,49 @@
using System.Collections.Generic;
using Newtonsoft.Json;
+using osu.Framework.IO.Network;
+using osu.Game.Extensions;
using osu.Game.Online.API;
+using osu.Game.Online.API.Requests;
namespace osu.Game.Online.Multiplayer
{
+ ///
+ /// Returns a list of scores for the specified playlist item.
+ ///
public class IndexPlaylistScoresRequest : APIRequest
{
private readonly int roomId;
private readonly int playlistItemId;
+ private readonly Cursor cursor;
+ private readonly MultiplayerScoresSort? sort;
- public IndexPlaylistScoresRequest(int roomId, int playlistItemId)
+ public IndexPlaylistScoresRequest(int roomId, int playlistItemId, Cursor cursor = null, MultiplayerScoresSort? sort = null)
{
this.roomId = roomId;
this.playlistItemId = playlistItemId;
+ this.cursor = cursor;
+ this.sort = sort;
+ }
+
+ protected override WebRequest CreateWebRequest()
+ {
+ var req = base.CreateWebRequest();
+
+ req.AddCursor(cursor);
+
+ switch (sort)
+ {
+ case MultiplayerScoresSort.Ascending:
+ req.AddParameter("sort", "scores_asc");
+ break;
+
+ case MultiplayerScoresSort.Descending:
+ req.AddParameter("sort", "scores_desc");
+ break;
+ }
+
+ return req;
}
protected override string Target => $@"rooms/{roomId}/playlist/{playlistItemId}/scores";