public static Client Get(long xuid) { if (!XUIDClients.ContainsKey(xuid)) { lock (XUIDClients) { XUIDClients.Add(xuid, new Client(xuid)); } } return(XUIDClients[xuid]); }
public static void CleanClientsThatAreLongGone() { lock (XUIDClients) { var canBeSafelyDeleted = (from client in XUIDClients where (DateTime.UtcNow - client.Value.LastTouched).TotalSeconds > 600 select client.Key).ToList(); // ToList is needed as we'll be deleting from the original enumeration foreach (var client in canBeSafelyDeleted) { XUIDClients.Remove(client); } Log.Info(string.Format("Deleted {0} clients", canBeSafelyDeleted.Count)); } }
public static bool Exists(long xuid) { return(XUIDClients.ContainsKey(xuid) && XUIDClients[xuid].GameBuild > 0); }