1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-22 05:13:21 +08:00

Merge pull request #29054 from peppy/fix-leaderboard-refreshing

Fix excessive leaderboard refreshes in daily challenge screen
This commit is contained in:
Bartłomiej Dach 2024-07-25 07:15:17 +02:00 committed by GitHub
commit ccef98d24e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 3 deletions

View File

@ -349,7 +349,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
feed.AddNewScore(ev);
if (e.NewRank <= 50)
Schedule(() => leaderboard.RefetchScores());
Scheduler.AddOnce(() => leaderboard.RefetchScores());
});
});
}
@ -486,7 +486,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
sampleStart?.Play();
this.Push(new PlayerLoader(() => new PlaylistsPlayer(room, playlistItem)
{
Exited = () => leaderboard.RefetchScores()
Exited = () => Scheduler.AddOnce(() => leaderboard.RefetchScores())
}));
}

View File

@ -118,9 +118,14 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
RefetchScores();
}
private IndexPlaylistScoresRequest? request;
public void RefetchScores()
{
var request = new IndexPlaylistScoresRequest(room.RoomID.Value!.Value, playlistItem.ID);
if (request?.CompletionState == APIRequestCompletionState.Waiting)
return;
request = new IndexPlaylistScoresRequest(room.RoomID.Value!.Value, playlistItem.ID);
request.Success += req => Schedule(() =>
{