public enum WEPPN_LobbyServerStatus
{
Unknown = 0,
Online = 1,
Offline = 2
}
private void OnChange_List()
{
List<ServerList.Entry> list = TNLobbyClient.knownServers.list;
//Debug.Log("OnChange_List: " + TNLobbyClient.errorString + " " + list.size);
isOnline = string.IsNullOrEmpty(TNLobbyClient.errorString) ? true : false;
_errorString = TNLobbyClient.errorString;
_isActive = TNLobbyClient.isActive;
for (int i = 0; i < list.size; ++i)
{
ServerList.Entry ent = list[i];
if (string.IsNullOrEmpty(ent.name))
{
Debug.Log("continue");
continue;
}
if (Exists(ent.name)) UpdateServer(ent);
else AddServer(ent);
}
//if the server was online and now it is not in the list - mark it offline
foreach (DataNode server in WEPPN.data.GetChild("servers").children)
{
string server_name = server.GetChild<string>("name");
WEPPN_LobbyServerStatus status = Status(server_name);
if (status != WEPPN_LobbyServerStatus.Online) continue;
//if im not on the list, then im offline
bool found = list.ToArray().FirstOrDefault(i => i.name == server_name) != null;
if (!found) StatusChange(server_name, false, true);
}
}