mirror of
https://github.com/ppy/osu.git
synced 2024-09-21 20:07:25 +08:00
Refactor playlist update to remove .Contains() check
This commit is contained in:
parent
bc10fcafae
commit
183a481a34
@ -537,21 +537,30 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
var mods = settings.RequiredMods.Select(m => m.ToMod(ruleset));
|
var mods = settings.RequiredMods.Select(m => m.ToMod(ruleset));
|
||||||
var allowedMods = settings.AllowedMods.Select(m => m.ToMod(ruleset));
|
var allowedMods = settings.AllowedMods.Select(m => m.ToMod(ruleset));
|
||||||
|
|
||||||
// Update an existing playlist item from the API room, or create a new item.
|
// Try to retrieve the existing playlist item from the API room.
|
||||||
var playlistItem = apiRoom.Playlist.FirstOrDefault(i => i.ID == settings.PlaylistItemId) ?? new PlaylistItem();
|
var playlistItem = apiRoom.Playlist.FirstOrDefault(i => i.ID == settings.PlaylistItemId);
|
||||||
|
|
||||||
playlistItem.ID = settings.PlaylistItemId;
|
if (playlistItem != null)
|
||||||
playlistItem.Beatmap.Value = beatmap;
|
updateItem(playlistItem);
|
||||||
playlistItem.Ruleset.Value = ruleset.RulesetInfo;
|
else
|
||||||
playlistItem.RequiredMods.Clear();
|
{
|
||||||
playlistItem.RequiredMods.AddRange(mods);
|
// An existing playlist item does not exist, so append a new one.
|
||||||
playlistItem.AllowedMods.Clear();
|
updateItem(playlistItem = new PlaylistItem());
|
||||||
playlistItem.AllowedMods.AddRange(allowedMods);
|
|
||||||
|
|
||||||
if (!apiRoom.Playlist.Contains(playlistItem))
|
|
||||||
apiRoom.Playlist.Add(playlistItem);
|
apiRoom.Playlist.Add(playlistItem);
|
||||||
|
}
|
||||||
|
|
||||||
CurrentMatchPlayingItem.Value = playlistItem;
|
CurrentMatchPlayingItem.Value = playlistItem;
|
||||||
|
|
||||||
|
void updateItem(PlaylistItem item)
|
||||||
|
{
|
||||||
|
item.ID = settings.PlaylistItemId;
|
||||||
|
item.Beatmap.Value = beatmap;
|
||||||
|
item.Ruleset.Value = ruleset.RulesetInfo;
|
||||||
|
item.RequiredMods.Clear();
|
||||||
|
item.RequiredMods.AddRange(mods);
|
||||||
|
item.AllowedMods.Clear();
|
||||||
|
item.AllowedMods.AddRange(allowedMods);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
Loading…
Reference in New Issue
Block a user