1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 09:32:55 +08:00

Change MultiplayerMatchSubScreen to not immediately leave the room on connection loss

Instead, we can rely on `MultiplayerClient.Room` going `null`.
This commit is contained in:
Dean Herbert 2022-07-17 18:23:15 +09:00
parent da7edd5d49
commit 55a8a3563b
2 changed files with 4 additions and 9 deletions

View File

@ -21,7 +21,6 @@ using osu.Game.Online.Rooms.RoomStatuses;
using osu.Game.Rulesets;
using osu.Game.Rulesets.Mods;
using osu.Game.Utils;
using APIUser = osu.Game.Online.API.Requests.Responses.APIUser;
namespace osu.Game.Online.Multiplayer
{
@ -91,7 +90,7 @@ namespace osu.Game.Online.Multiplayer
/// <summary>
/// The joined <see cref="MultiplayerRoom"/>.
/// </summary>
public virtual MultiplayerRoom? Room
public virtual MultiplayerRoom? Room // virtual for moq
{
get
{
@ -150,7 +149,7 @@ namespace osu.Game.Online.Multiplayer
// clean up local room state on server disconnect.
if (!connected.NewValue && Room != null)
{
Logger.Log("Connection to multiplayer server was lost.", LoggingTarget.Runtime, LogLevel.Important);
Logger.Log("Clearing room due to multiplayer server connection loss.", LoggingTarget.Runtime, LogLevel.Important);
LeaveRoom();
}
}));

View File

@ -70,12 +70,8 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
client.LoadRequested += onLoadRequested;
client.RoomUpdated += onRoomUpdated;
isConnected.BindTo(client.IsConnected);
isConnected.BindValueChanged(connected =>
{
if (!connected.NewValue)
handleRoomLost();
}, true);
if (!client.IsConnected.Value)
handleRoomLost();
}
protected override Drawable CreateMainContent() => new Container