fix: Edgegap Lobby Error continues to Connecting (#3898)

Missing return, oops.
Also some minor readability cleanup
This commit is contained in:
Robin Rolf 2024-09-18 14:36:12 +01:00 committed by GitHub
parent 1cc18e67c5
commit 2d9ee5646c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -206,63 +206,66 @@ private IEnumerator WaitForLobbyRelay(string lobbyId, bool forServer)
Api.GetLobby(lobbyId, lobby =>
{
waitingForResponse = false;
if (!string.IsNullOrEmpty(lobby.assignment.ip))
if (string.IsNullOrEmpty(lobby.assignment.ip))
{
relayAddress = lobby.assignment.ip;
foreach (Lobby.Port aport in lobby.assignment.ports)
// no lobby deployed yet, have the outer loop retry
return;
}
relayAddress = lobby.assignment.ip;
foreach (Lobby.Port aport in lobby.assignment.ports)
{
if (aport.protocol == "UDP")
{
if (aport.protocol == "UDP")
if (aport.name == "server")
{
if (aport.name == "server")
{
relayGameServerPort = (ushort)aport.port;
relayGameServerPort = (ushort)aport.port;
}
else if (aport.name == "client")
{
relayGameClientPort = (ushort)aport.port;
}
}
}
bool found = false;
foreach (Lobby.Player player in lobby.players)
{
if (player.id == _playerId)
else if (aport.name == "client")
{
userId = player.authorization_token;
sessionId = lobby.assignment.authorization_token;
found = true;
break;
relayGameClientPort = (ushort)aport.port;
}
}
running = false;
if (!found)
}
bool found = false;
foreach (Lobby.Player player in lobby.players)
{
if (player.id == _playerId)
{
string errorMsg = $"Couldn't find my player ({_playerId})";
Debug.LogError(errorMsg);
userId = player.authorization_token;
sessionId = lobby.assignment.authorization_token;
found = true;
break;
}
}
running = false;
if (!found)
{
string errorMsg = $"Couldn't find my player ({_playerId})";
Debug.LogError(errorMsg);
if (forServer)
{
_status = TransportStatus.Error;
OnServerError?.Invoke(0, TransportError.Unexpected, errorMsg);
ServerStop();
}
else
{
_status = TransportStatus.Error;
OnClientError?.Invoke(TransportError.Unexpected, errorMsg);
ClientDisconnect();
}
}
_status = TransportStatus.Connecting;
if (forServer)
{
base.ServerStart();
_status = TransportStatus.Error;
OnServerError?.Invoke(0, TransportError.Unexpected, errorMsg);
ServerStop();
}
else
{
base.ClientConnect("");
_status = TransportStatus.Error;
OnClientError?.Invoke(TransportError.Unexpected, errorMsg);
ClientDisconnect();
}
return;
}
_status = TransportStatus.Connecting;
if (forServer)
{
base.ServerStart();
}
else
{
base.ClientConnect("");
}
}, error =>
{