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)