diff --git a/osu.Game/Beatmaps/IO/LegacyFilesystemReader.cs b/osu.Game/Beatmaps/IO/LegacyFilesystemReader.cs index dc38181717..21042ad8bd 100644 --- a/osu.Game/Beatmaps/IO/LegacyFilesystemReader.cs +++ b/osu.Game/Beatmaps/IO/LegacyFilesystemReader.cs @@ -26,7 +26,7 @@ namespace osu.Game.Beatmaps.IO // no-op } - public override IEnumerable Filenames => Directory.GetFiles(path).Select(Path.GetFileName).ToArray(); + public override IEnumerable Filenames => Directory.GetFiles(path, "*", SearchOption.AllDirectories).Select(Path.GetFileName).ToArray(); public override Stream GetUnderlyingStream() => null; } diff --git a/osu.Game/Online/API/OAuth.cs b/osu.Game/Online/API/OAuth.cs index c96b21a855..5410bcc55d 100644 --- a/osu.Game/Online/API/OAuth.cs +++ b/osu.Game/Online/API/OAuth.cs @@ -27,42 +27,45 @@ namespace osu.Game.Online.API internal bool AuthenticateWithLogin(string username, string password) { - var req = new AccessTokenRequestPassword(username, password) + using (var req = new AccessTokenRequestPassword(username, password) { Url = $@"{endpoint}/oauth/token", Method = HttpMethod.POST, ClientId = clientId, ClientSecret = clientSecret - }; - - try + }) { - req.BlockingPerform(); - } - catch - { - return false; - } + try + { + req.BlockingPerform(); + } + catch + { + return false; + } - Token = req.ResponseObject; - return true; + Token = req.ResponseObject; + return true; + } } internal bool AuthenticateWithRefresh(string refresh) { try { - var req = new AccessTokenRequestRefresh(refresh) + using (var req = new AccessTokenRequestRefresh(refresh) { Url = $@"{endpoint}/oauth/token", Method = HttpMethod.POST, ClientId = clientId, ClientSecret = clientSecret - }; - req.BlockingPerform(); + }) + { + req.BlockingPerform(); - Token = req.ResponseObject; - return true; + Token = req.ResponseObject; + return true; + } } catch { diff --git a/osu.Game/Online/API/Requests/GetScoresRequest.cs b/osu.Game/Online/API/Requests/GetScoresRequest.cs index ef9ee85d25..13bd8d288d 100644 --- a/osu.Game/Online/API/Requests/GetScoresRequest.cs +++ b/osu.Game/Online/API/Requests/GetScoresRequest.cs @@ -5,7 +5,6 @@ using System; using System.Collections.Generic; using System.Linq; using Newtonsoft.Json; -using osu.Framework.IO.Network; using osu.Game.Beatmaps; using osu.Game.Users; using osu.Game.Rulesets.Replays; @@ -19,6 +18,9 @@ namespace osu.Game.Online.API.Requests public GetScoresRequest(BeatmapInfo beatmap) { + if (!beatmap.OnlineBeatmapID.HasValue) + throw new InvalidOperationException($"Cannot lookup a beatmap's scores without having a populated {nameof(BeatmapInfo.OnlineBeatmapID)}."); + this.beatmap = beatmap; Success += onSuccess; @@ -30,14 +32,6 @@ namespace osu.Game.Online.API.Requests score.ApplyBeatmap(beatmap); } - protected override WebRequest CreateWebRequest() - { - var req = base.CreateWebRequest(); - //req.AddParameter(@"c", beatmap.Hash); - //req.AddParameter(@"f", beatmap.Path); - return req; - } - protected override string Target => $@"beatmaps/{beatmap.OnlineBeatmapID}/scores"; } diff --git a/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs b/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs index 0506784614..7d65b8b648 100644 --- a/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs +++ b/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs @@ -130,7 +130,7 @@ namespace osu.Game.Screens.Select.Leaderboards Scores = null; getScoresRequest?.Cancel(); - if (api == null || Beatmap == null) return; + if (api == null || Beatmap?.OnlineBeatmapID == null) return; loading.Show();