Skip to content

Commit 16c8ac3

Browse files
committed
replacing null-conditional operators for types "T?"
1 parent 2f03ea5 commit 16c8ac3

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

Assets/Scripts/ConnectionManagement/ConnectionState/HostingState.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,19 @@ public override void Exit()
4242

4343
public override void OnClientConnected(ulong clientId)
4444
{
45-
m_ConnectionEventPublisher.Publish(new ConnectionEventMessage() { ConnectStatus = ConnectStatus.Success, PlayerName = SessionManager<SessionPlayerData>.Instance.GetPlayerData(clientId)?.PlayerName });
45+
var playerData = SessionManager<SessionPlayerData>.Instance.GetPlayerData(clientId);
46+
if (playerData != null)
47+
{
48+
m_ConnectionEventPublisher.Publish(new ConnectionEventMessage() { ConnectStatus = ConnectStatus.Success, PlayerName = playerData.Value.PlayerName });
49+
}
50+
else
51+
{
52+
// This should not happen since player data is assigned during connection approval
53+
Debug.LogError($"No player data associated with client {clientId}");
54+
var reason = JsonUtility.ToJson(ConnectStatus.GenericDisconnect);
55+
m_ConnectionManager.NetworkManager.DisconnectClient(clientId, reason);
56+
}
57+
4658
}
4759

4860
public override void OnClientDisconnect(ulong clientId)

Packages/com.unity.multiplayer.samples.coop/Utilities/Net/SessionManager.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ public void DisconnectClient(ulong clientId)
6767
// Mark client as disconnected, but keep their data so they can reconnect.
6868
if (m_ClientIDToPlayerId.TryGetValue(clientId, out var playerId))
6969
{
70-
if (GetPlayerData(playerId)?.ClientID == clientId)
70+
var playerData = GetPlayerData(playerId);
71+
if (playerData != null && playerData.Value.ClientID == clientId)
7172
{
7273
var clientData = m_ClientData[playerId];
7374
clientData.IsConnected = false;
@@ -81,7 +82,8 @@ public void DisconnectClient(ulong clientId)
8182
if (m_ClientIDToPlayerId.TryGetValue(clientId, out var playerId))
8283
{
8384
m_ClientIDToPlayerId.Remove(clientId);
84-
if (GetPlayerData(playerId)?.ClientID == clientId)
85+
var playerData = GetPlayerData(playerId);
86+
if (playerData != null && playerData.Value.ClientID == clientId)
8587
{
8688
m_ClientData.Remove(playerId);
8789
}
@@ -262,7 +264,8 @@ void ClearDisconnectedPlayersData()
262264
foreach (var id in idsToClear)
263265
{
264266
string playerId = m_ClientIDToPlayerId[id];
265-
if (GetPlayerData(playerId)?.ClientID == id)
267+
var playerData = GetPlayerData(playerId);
268+
if (playerData != null && playerData.Value.ClientID == id)
266269
{
267270
m_ClientData.Remove(playerId);
268271
}

0 commit comments

Comments
 (0)