diff --git a/osu.Game/Online/API/Requests/LookupUsersRequest.cs b/osu.Game/Online/API/Requests/LookupUsersRequest.cs
index 6e98ce064e..99c1c551e4 100644
--- a/osu.Game/Online/API/Requests/LookupUsersRequest.cs
+++ b/osu.Game/Online/API/Requests/LookupUsersRequest.cs
@@ -10,21 +10,26 @@ namespace osu.Game.Online.API.Requests
/// Looks up users with the given .
/// In comparison to , the response here does not contain ,
/// but in exchange is subject to less stringent rate limiting, making it suitable for mass user listings.
+ ///
+ /// Providing a ruleset ID will give `global_rank`s in the response.
///
public class LookupUsersRequest : APIRequest
{
public readonly int[] UserIds;
+ public readonly int? RulesetId;
+
private const int max_ids_per_request = 50;
- public LookupUsersRequest(int[] userIds)
+ public LookupUsersRequest(int[] userIds, int? rulesetId = null)
{
if (userIds.Length > max_ids_per_request)
throw new ArgumentException($"{nameof(LookupUsersRequest)} calls only support up to {max_ids_per_request} IDs at once");
UserIds = userIds;
+ RulesetId = rulesetId;
}
- protected override string Target => @"users/lookup/?ids[]=" + string.Join(@"&ids[]=", UserIds);
+ protected override string Target => @"users/lookup/?ids[]=" + string.Join(@"&ids[]=", UserIds) + (RulesetId != null ? "&ruleset_id=" + RulesetId : "");
}
}
diff --git a/osu.Game/Online/API/Requests/Responses/APIUser.cs b/osu.Game/Online/API/Requests/Responses/APIUser.cs
index 6f122c58af..fa90e5cd50 100644
--- a/osu.Game/Online/API/Requests/Responses/APIUser.cs
+++ b/osu.Game/Online/API/Requests/Responses/APIUser.cs
@@ -247,6 +247,20 @@ namespace osu.Game.Online.API.Requests.Responses
}
}
+ // Only provided via /users/ batch lookups. Usually implicitly comes inside `UserStatistics`.
+ [JsonProperty(@"global_rank")]
+ [CanBeNull]
+ public GlobalRank Rank { get; set; }
+
+ public class GlobalRank
+ {
+ [JsonProperty(@"rank")]
+ public int? Rank;
+
+ [JsonProperty(@"ruleset_id")]
+ public int RulesetId;
+ }
+
[JsonProperty(@"rank_history")]
private APIRankHistory rankHistory
{