/// <summary>
///
/// </summary>
/// <param name="eventServerInfoChanged">Invocato se il download dei dati ha causato una modifica ai dati</param>
/// <returns></returns>
public Task ReadData(EventHandler <EventArgs> eventServerInfoChanged = null)
{
return(Task.Factory.StartNew(() =>
{
var query = new Query(Server.Ip, Server.Port);
query.Send('i');
var count = query.Receive();
var info = query.Store(count);
if (info.Length == 0)
{
/* qualcosa è andato storto? */
return;
}
Locked = int.Parse(info[0]) == 1;
Players = new List <Player>(int.Parse(info[2]));
Server.HostName = info[3];
Gamemode = info[4];
MapName = info[5];
if (updated && eventServerInfoChanged != null)
{
eventServerInfoChanged(Server, null);
}
updated = false;
}));
}