From bbdd70c8431b1c95f4f7cd8bfad0414ffd82d1ab Mon Sep 17 00:00:00 2001 From: Dan Balasescu Date: Thu, 11 Dec 2025 20:07:36 +0900 Subject: [PATCH 1/3] Always perform leave room sequence --- osu.Game/Online/Multiplayer/MultiplayerClient.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/osu.Game/Online/Multiplayer/MultiplayerClient.cs b/osu.Game/Online/Multiplayer/MultiplayerClient.cs index 4f223cc1ab..59a26d5ba7 100644 --- a/osu.Game/Online/Multiplayer/MultiplayerClient.cs +++ b/osu.Game/Online/Multiplayer/MultiplayerClient.cs @@ -319,9 +319,6 @@ namespace osu.Game.Online.Multiplayer public Task LeaveRoom() { - if (Room == null) - return Task.CompletedTask; - // The join may have not completed yet, so certain tasks that either update the room or reference the room should be cancelled. // This includes the setting of Room itself along with the initial update of the room settings on join. joinCancellationSource?.Cancel(); From c17db2cdd0c3ce81a3648fe5a12e32ec88f4ed7b Mon Sep 17 00:00:00 2001 From: Dan Balasescu Date: Thu, 11 Dec 2025 20:07:44 +0900 Subject: [PATCH 2/3] Forcefully leave room on multiplayer exit --- osu.Game/Screens/OnlinePlay/Multiplayer/Multiplayer.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/Multiplayer.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/Multiplayer.cs index eb387b2664..b58041aa6f 100644 --- a/osu.Game/Screens/OnlinePlay/Multiplayer/Multiplayer.cs +++ b/osu.Game/Screens/OnlinePlay/Multiplayer/Multiplayer.cs @@ -90,6 +90,15 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer client.ChangeState(MultiplayerUserState.Idle).FireAndForget(); } + public override bool OnExiting(ScreenExitEvent e) + { + if (base.OnExiting(e)) + return true; + + client.LeaveRoom().FireAndForget(); + return false; + } + protected override string ScreenTitle => "Multiplayer"; protected override LoungeSubScreen CreateLounge() => new MultiplayerLoungeSubScreen(); From 79151ae5b4fb12249e850cb10baddb3f625a067d Mon Sep 17 00:00:00 2001 From: Dan Balasescu Date: Fri, 12 Dec 2025 15:46:00 +0900 Subject: [PATCH 3/3] Remove mention of exception that doesn't exist --- osu.Game/Online/Multiplayer/IMultiplayerRoomServer.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/osu.Game/Online/Multiplayer/IMultiplayerRoomServer.cs b/osu.Game/Online/Multiplayer/IMultiplayerRoomServer.cs index 169d5d1b83..836b9efb10 100644 --- a/osu.Game/Online/Multiplayer/IMultiplayerRoomServer.cs +++ b/osu.Game/Online/Multiplayer/IMultiplayerRoomServer.cs @@ -16,7 +16,6 @@ namespace osu.Game.Online.Multiplayer /// /// Request to leave the currently joined room. /// - /// If the user is not in a room. Task LeaveRoom(); ///