diff --git a/osu.Game/Online/Multiplayer/IMultiplayerClient.cs b/osu.Game/Online/Multiplayer/IMultiplayerClient.cs index c91128401d..c94faf173c 100644 --- a/osu.Game/Online/Multiplayer/IMultiplayerClient.cs +++ b/osu.Game/Online/Multiplayer/IMultiplayerClient.cs @@ -153,7 +153,7 @@ namespace osu.Game.Online.Multiplayer /// /// Signals that a user has requested to skip the beatmap intro. /// - Task UserVotedToSkipIntro(int userId); + Task UserVotedToSkipIntro(int userId, bool voted); /// /// Signals that the vote to skip the beatmap intro has passed. diff --git a/osu.Game/Online/Multiplayer/MultiplayerClient.cs b/osu.Game/Online/Multiplayer/MultiplayerClient.cs index 9fca1d5780..4f223cc1ab 100644 --- a/osu.Game/Online/Multiplayer/MultiplayerClient.cs +++ b/osu.Game/Online/Multiplayer/MultiplayerClient.cs @@ -131,7 +131,7 @@ namespace osu.Game.Online.Multiplayer public event Action? MatchmakingItemDeselected; public event Action? MatchRoomStateChanged; - public event Action? UserVotedToSkipIntro; + public event Action? UserVotedToSkipIntro; public event Action? VoteToSkipIntroPassed; public event Action? BeatmapAvailabilityChanged; @@ -854,10 +854,6 @@ namespace osu.Game.Online.Multiplayer handleRoomRequest(() => { Debug.Assert(Room != null); - - foreach (var user in Room.Users) - user.VotedToSkipIntro = false; - GameplayStarted?.Invoke(); }); @@ -928,7 +924,7 @@ namespace osu.Game.Online.Multiplayer return Task.CompletedTask; } - Task IMultiplayerClient.UserVotedToSkipIntro(int userId) + Task IMultiplayerClient.UserVotedToSkipIntro(int userId, bool voted) { handleRoomRequest(() => { @@ -940,9 +936,8 @@ namespace osu.Game.Online.Multiplayer if (user == null) return; - user.VotedToSkipIntro = true; - - UserVotedToSkipIntro?.Invoke(userId); + user.VotedToSkipIntro = voted; + UserVotedToSkipIntro?.Invoke(userId, voted); }); return Task.CompletedTask; diff --git a/osu.Game/Online/Multiplayer/OnlineMultiplayerClient.cs b/osu.Game/Online/Multiplayer/OnlineMultiplayerClient.cs index 1319578c06..7cfa036dcd 100644 --- a/osu.Game/Online/Multiplayer/OnlineMultiplayerClient.cs +++ b/osu.Game/Online/Multiplayer/OnlineMultiplayerClient.cs @@ -70,7 +70,7 @@ namespace osu.Game.Online.Multiplayer connection.On(nameof(IMultiplayerClient.PlaylistItemAdded), ((IMultiplayerClient)this).PlaylistItemAdded); connection.On(nameof(IMultiplayerClient.PlaylistItemRemoved), ((IMultiplayerClient)this).PlaylistItemRemoved); connection.On(nameof(IMultiplayerClient.PlaylistItemChanged), ((IMultiplayerClient)this).PlaylistItemChanged); - connection.On(nameof(IMultiplayerClient.UserVotedToSkipIntro), ((IMultiplayerClient)this).UserVotedToSkipIntro); + connection.On(nameof(IMultiplayerClient.UserVotedToSkipIntro), ((IMultiplayerClient)this).UserVotedToSkipIntro); connection.On(nameof(IMultiplayerClient.VoteToSkipIntroPassed), ((IMultiplayerClient)this).VoteToSkipIntroPassed); connection.On(nameof(IMatchmakingClient.MatchmakingQueueJoined), ((IMatchmakingClient)this).MatchmakingQueueJoined); diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerSkipOverlay.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerSkipOverlay.cs index 9e237483fe..5a9c31b889 100644 --- a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerSkipOverlay.cs +++ b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerSkipOverlay.cs @@ -68,7 +68,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer private void onUserStateChanged(MultiplayerRoomUser user, MultiplayerUserState state) => Schedule(updateCount); - private void onUserVotedToSkipIntro(int userId) => Schedule(() => + private void onUserVotedToSkipIntro(int userId, bool voted) => Schedule(() => { FadingContent.TriggerShow(); updateCount(); diff --git a/osu.Game/Tests/Visual/Multiplayer/TestMultiplayerClient.cs b/osu.Game/Tests/Visual/Multiplayer/TestMultiplayerClient.cs index 38070d953e..2f8a3dc7a8 100644 --- a/osu.Game/Tests/Visual/Multiplayer/TestMultiplayerClient.cs +++ b/osu.Game/Tests/Visual/Multiplayer/TestMultiplayerClient.cs @@ -568,7 +568,7 @@ namespace osu.Game.Tests.Visual.Multiplayer public async Task UserVoteToSkipIntro(int userId) { - await ((IMultiplayerClient)this).UserVotedToSkipIntro(userId).ConfigureAwait(false); + await ((IMultiplayerClient)this).UserVotedToSkipIntro(userId, true).ConfigureAwait(false); } protected override Task CreateRoomInternal(MultiplayerRoom room)