diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayer.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayer.cs index 050fcf8675..083b5b14fb 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayer.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayer.cs @@ -1154,10 +1154,15 @@ namespace osu.Game.Tests.Visual.Multiplayer AddStep("open user style selection", () => this.ChildrenOfType().Single().ShowUserStyleSelect()); AddUntilStep("style selection screen opened", () => this.ChildrenOfType().SingleOrDefault()?.IsCurrentScreen() == true); - AddStep("change beatmap", () => multiplayerClient.EditPlaylistItem(new MultiplayerPlaylistItem(new PlaylistItem(multiplayerClient.ServerRoom!.Playlist[0]) + AddStep("change beatmap", () => { - Beatmap = importedSet.Beatmaps.Last(), - }))); + var newItem = multiplayerClient.ServerRoom!.Playlist[0].Clone(); + var newBeatmap = importedSet.Beatmaps.Last(); + newItem.BeatmapID = newBeatmap.OnlineID; + newItem.BeatmapChecksum = newBeatmap.MD5Hash; + + multiplayerClient.EditPlaylistItem(newItem); + }); AddWaitStep("wait for potential beatmap change", 2); AddAssert("style selection screen still open", () => this.ChildrenOfType().SingleOrDefault()?.IsCurrentScreen() == true); @@ -1186,10 +1191,15 @@ namespace osu.Game.Tests.Visual.Multiplayer AddStep("open user style selection", () => this.ChildrenOfType().Single().ShowUserStyleSelect()); AddUntilStep("style selection screen opened", () => this.ChildrenOfType().SingleOrDefault()?.IsCurrentScreen() == true); - AddStep("change beatmap set", () => multiplayerClient.EditPlaylistItem(new MultiplayerPlaylistItem(new PlaylistItem(multiplayerClient.ServerRoom!.Playlist[0]) + AddStep("change beatmap set", () => { - Beatmap = importedSet2.Beatmaps.First(), - }))); + var newItem = multiplayerClient.ServerRoom!.Playlist[0].Clone(); + var newBeatmap = importedSet2.Beatmaps.Last(); + newItem.BeatmapID = newBeatmap.OnlineID; + newItem.BeatmapChecksum = newBeatmap.MD5Hash; + + multiplayerClient.EditPlaylistItem(newItem); + }); AddUntilStep("selected beatmap changed", () => Beatmap.Value.BeatmapInfo.Equals(importedSet2.Beatmaps.First())); AddUntilStep("style selection screen closed", () => this.ChildrenOfType().SingleOrDefault()?.IsCurrentScreen() != true); diff --git a/osu.Game/Online/Rooms/PlaylistItem.cs b/osu.Game/Online/Rooms/PlaylistItem.cs index 52f943b536..b7b6a2d7b3 100644 --- a/osu.Game/Online/Rooms/PlaylistItem.cs +++ b/osu.Game/Online/Rooms/PlaylistItem.cs @@ -90,7 +90,7 @@ namespace osu.Game.Online.Rooms /// In many cases, this will *not* contain any usable information apart from OnlineID. /// [JsonIgnore] - public IBeatmapInfo Beatmap { get; set; } + public IBeatmapInfo Beatmap { get; private set; } [JsonIgnore] public IBindable Valid => valid;