From 12a56e36bd69d5ad5a4a90db476cab75f5eefacb Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 Jul 2022 17:46:58 +0900 Subject: [PATCH] Fix `ID` mapping and move osu-web additions to region to identify them clearly --- .../API/Requests/Responses/SoloScoreInfo.cs | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/osu.Game/Online/API/Requests/Responses/SoloScoreInfo.cs b/osu.Game/Online/API/Requests/Responses/SoloScoreInfo.cs index 71c6c3adab..dea0de4608 100644 --- a/osu.Game/Online/API/Requests/Responses/SoloScoreInfo.cs +++ b/osu.Game/Online/API/Requests/Responses/SoloScoreInfo.cs @@ -18,9 +18,8 @@ namespace osu.Game.Online.API.Requests.Responses [Serializable] public class SoloScoreInfo : IHasOnlineID { - [JsonIgnore] - [JsonProperty(" ")] - public long ID { get; set; } + [JsonProperty("replay")] + public bool HasReplay { get; set; } [JsonProperty("beatmap_id")] public int BeatmapID { get; set; } @@ -43,12 +42,6 @@ namespace osu.Game.Online.API.Requests.Responses [JsonProperty("user_id")] public int UserID { get; set; } - /// - /// User may be provided via an osu-web response, but will not be present from raw database json. - /// - [JsonProperty("user")] - public APIUser? User { get; set; } - // TODO: probably want to update this column to match user stats (short)? [JsonProperty("max_combo")] public int MaxCombo { get; set; } @@ -81,6 +74,19 @@ namespace osu.Game.Online.API.Requests.Responses [JsonProperty("statistics")] public Dictionary Statistics { get; set; } = new Dictionary(); + #region osu-web API additions (not stored to database). + + [JsonProperty("id")] + public long? ID { get; set; } + + [JsonProperty("user")] + public APIUser? User { get; set; } + + [JsonProperty("pp")] + public double? PP { get; set; } + + #endregion + public override string ToString() => $"score_id: {ID} user_id: {UserID}"; /// @@ -116,7 +122,7 @@ namespace osu.Game.Online.API.Requests.Responses public ScoreInfo ToScoreInfo(Mod[] mods) => new ScoreInfo { OnlineID = OnlineID, - User = new APIUser { Id = UserID }, + User = User ?? new APIUser { Id = UserID }, BeatmapInfo = new BeatmapInfo { OnlineID = BeatmapID }, Ruleset = new RulesetInfo { OnlineID = RulesetID }, Passed = Passed, @@ -127,9 +133,11 @@ namespace osu.Game.Online.API.Requests.Responses Statistics = Statistics, Date = EndedAt ?? DateTimeOffset.Now, Hash = "online", // TODO: temporary? + HasReplay = HasReplay, Mods = mods, + PP = PP, }; - public long OnlineID => ID; + public long OnlineID => ID ?? -1; } }