Fix scores not being accepted due to missing ruleset ID

This commit is contained in:
Dean Herbert 2021-04-09 15:18:02 +09:00
parent a4b4033bf0
commit 51fee79ef1
2 changed files with 9 additions and 2 deletions

View File

@ -1,6 +1,7 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System.Globalization;
using System.Net.Http;
using osu.Framework.IO.Network;
using osu.Game.Online.API;
@ -11,11 +12,13 @@ namespace osu.Game.Online.Solo
public class CreateSoloScoreRequest : APIRequest<APIScoreToken>
{
private readonly int beatmapId;
private readonly int rulesetId;
private readonly string versionHash;
public CreateSoloScoreRequest(int beatmapId, string versionHash)
public CreateSoloScoreRequest(int beatmapId, int rulesetId, string versionHash)
{
this.beatmapId = beatmapId;
this.rulesetId = rulesetId;
this.versionHash = versionHash;
}
@ -24,6 +27,7 @@ protected override WebRequest CreateWebRequest()
var req = base.CreateWebRequest();
req.Method = HttpMethod.Post;
req.AddParameter("version_hash", versionHash);
req.AddParameter("ruleset_id", rulesetId.ToString(CultureInfo.InvariantCulture));
return req;
}

View File

@ -17,7 +17,10 @@ protected override APIRequest<APIScoreToken> CreateTokenRequest()
if (!(Beatmap.Value.BeatmapInfo.OnlineBeatmapID is int beatmapId))
return null;
return new CreateSoloScoreRequest(beatmapId, Game.VersionHash);
if (!(Ruleset.Value.ID is int rulesetId))
return null;
return new CreateSoloScoreRequest(beatmapId, rulesetId, Game.VersionHash);
}
protected override bool HandleTokenRetrievalFailure(Exception exception) => false;