From 3eb1ae225daad615a387277f7a76b0f3b8eaf3aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Fri, 25 Apr 2025 13:06:01 +0200 Subject: [PATCH] Exclude non-user-playable mods from mod filter in beatmap leaderboard For easier understanding, substitute "non-user-playable" with "autoplay". The reason that I'm bothering to do this is that if you put autoplay on and turn on the "Selected Mods" filter, the request will actually go through and hit web, and web will obviously return no scores. On song select that's *maybe* fine, even though probably unintended still, but now with the leaderboard state being global this also means gameplay gets impacted. Which also means that if you Ctrl-Enter to start a map in autoplay you're not going to get any gameplay leaderboard scores at all. --- osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs b/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs index 8197319102..ddb7814d12 100644 --- a/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs +++ b/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs @@ -100,7 +100,7 @@ namespace osu.Game.Screens.Select.Leaderboards // For now, we forcefully refresh to keep things simple. // In the future, removing this requirement may be deemed useful, but will need ample testing of edge case scenarios // (like returning from gameplay after setting a new score, returning to song select after main menu). - leaderboardManager.FetchWithCriteria(new LeaderboardCriteria(fetchBeatmapInfo, fetchRuleset, Scope, filterMods ? mods.Value.ToArray() : null), forceRefresh: true); + leaderboardManager.FetchWithCriteria(new LeaderboardCriteria(fetchBeatmapInfo, fetchRuleset, Scope, filterMods ? mods.Value.Where(m => m.UserPlayable).ToArray() : null), forceRefresh: true); if (!initialFetchComplete) {