mirror of
https://github.com/ppy/osu.git
synced 2024-12-14 12:33:01 +08:00
Avoid performing any actions when BeatmapAvailability
is updated to Unknown
This commit is contained in:
parent
1d4380cfd0
commit
91354b1570
@ -313,16 +313,26 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
||||
|
||||
client.ChangeBeatmapAvailability(availability.NewValue).FireAndForget();
|
||||
|
||||
if (availability.NewValue.State != DownloadState.LocallyAvailable)
|
||||
switch (availability.NewValue.State)
|
||||
{
|
||||
// while this flow is handled server-side, this covers the edge case of the local user being in a ready state and then deleting the current beatmap.
|
||||
if (client.LocalUser?.State == MultiplayerUserState.Ready)
|
||||
client.ChangeState(MultiplayerUserState.Idle);
|
||||
}
|
||||
else if (client.LocalUser?.State == MultiplayerUserState.Spectating
|
||||
&& (client.Room?.State == MultiplayerRoomState.WaitingForLoad || client.Room?.State == MultiplayerRoomState.Playing))
|
||||
{
|
||||
onLoadRequested();
|
||||
case DownloadState.LocallyAvailable:
|
||||
if (client.LocalUser?.State == MultiplayerUserState.Spectating
|
||||
&& (client.Room?.State == MultiplayerRoomState.WaitingForLoad || client.Room?.State == MultiplayerRoomState.Playing))
|
||||
{
|
||||
onLoadRequested();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case DownloadState.Unknown:
|
||||
// Don't do anything rash in an unknown state.
|
||||
break;
|
||||
|
||||
default:
|
||||
// while this flow is handled server-side, this covers the edge case of the local user being in a ready state and then deleting the current beatmap.
|
||||
if (client.LocalUser?.State == MultiplayerUserState.Ready)
|
||||
client.ChangeState(MultiplayerUserState.Idle);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user