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:
parent
da7edd5d49
commit
55a8a3563b
@ -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();
|
||||
}
|
||||
}));
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user