void RefreshOnlinePlayerList(AdminPlayersList playerList) { foreach (var p in playerList.players) { var index = playerEntries.FindIndex(x => x.PlayerData.uid == p.uid); if (index != -1) { playerEntries[index].UpdateButton(p, SelectPlayerInList, masterNotification, disableButtonInteract); } else { if (showAdminsOnly) { if (!p.isAdmin) { continue; } } var e = Instantiate(playerEntryPrefab, playerListContent); var entry = e.GetComponent <AdminPlayerEntry>(); entry.UpdateButton(p, SelectPlayerInList, masterNotification, disableButtonInteract); playerEntries.Add(entry); index = playerEntries.Count - 1; } if (!p.isOnline) { playerEntries[index].transform.SetAsLastSibling(); } } Search(); if (SelectedPlayer == null) { if (playerEntries.Count == 0) { return; } SelectPlayerInList(playerEntries[0]); } else { if (gameObject.activeInHierarchy) { SelectedPlayer.pendingMsgNotification.ClearAll(); if (masterNotification != null) { masterNotification.RemoveNotification(SelectedPlayer.PlayerData.uid); } } } }
public void ReceiveUpdatedPlayerList(AdminPlayersList playerList) { RefreshOnlinePlayerList(playerList); }