Only drop online set ID if beatmap IDs were stripped in online retrieval

This commit is contained in:
Dean Herbert 2020-03-30 15:07:56 +09:00
parent 7ecce713bb
commit f71c8cb30f

View File

@ -103,11 +103,19 @@ namespace osu.Game.Beatmaps
validateOnlineIds(beatmapSet);
bool hadOnlineBeatmapIDs = beatmapSet.Beatmaps.Any(b => b.OnlineBeatmapID > 0);
await updateQueue.UpdateAsync(beatmapSet, cancellationToken);
// ensure at least one beatmap was able to retrieve an online ID, else drop the set ID.
if (!beatmapSet.Beatmaps.Any(b => b.OnlineBeatmapID > 0))
beatmapSet.OnlineBeatmapSetID = null;
// ensure at least one beatmap was able to retrieve or keep an online ID, else drop the set ID.
if (hadOnlineBeatmapIDs && !beatmapSet.Beatmaps.Any(b => b.OnlineBeatmapID > 0))
{
if (beatmapSet.OnlineBeatmapSetID != null)
{
beatmapSet.OnlineBeatmapSetID = null;
LogForModel(beatmapSet, "Disassociating beatmap set ID due to loss of all beatmap IDs");
}
}
}
protected override void PreImport(BeatmapSetInfo beatmapSet)