public override string Identified(string nick) { string id; if (NickCache.TryGetValue(nick, out id)) { if ((id != null) || (lastCheck.AddSeconds(10) > DateTime.Now)) { return(id); } } lastCheck = DateTime.Now; var nsir = new NickServIdentifyRequest(nick, Bot); if (NickCache.ContainsKey(nick)) { NickCache.Remove(nick); } lock (nsir) { if (Monitor.Wait(nsir, MaxWaitTime)) { lock (NickCache) { if (!NickCache.ContainsKey(nick)) { NickCache.Add(nick, nsir.Identity); } } } else { return(null); } } return(nsir.Identity); }
public override string Identified(string nick) { string id; if (NickCache.TryGetValue(nick, out id)) { if ((id != null) || (lastCheck.AddSeconds(10) > DateTime.Now)) { return id; } } lastCheck = DateTime.Now; var nsir = new NickServIdentifyRequest(nick, Bot); if (NickCache.ContainsKey(nick)) { NickCache.Remove(nick); } lock (nsir) { if (Monitor.Wait(nsir, MaxWaitTime)) { lock (NickCache) { if (!NickCache.ContainsKey(nick)) NickCache.Add(nick, nsir.Identity); } } else { return null; } } return nsir.Identity; }