public static void server_OnUserDisconnected(object sender, UserDisconnectedEventArgs e) { if (e.Client != null && e != null) { if (!Server.Clients.Contains(e.Client)) return; ProcessOutput(e.Client.NickName + " has disconnected!"); foreach (KeyValuePair<string, Channel> chan in e.Client.Channels) { Handler.SendToChannel(chan.Value, MessageGeneration.GenerateQuit(chan.Key, e.Client.NickName, "Ping Timeout: 10 seconds."), e.Client); chan.Value.Clients.Remove(e.Client.NickName); if (chan.Value.OpUsers.ContainsKey(e.Client.NickName)) chan.Value.OpUsers.Remove(e.Client.NickName); } Server.Clients.Remove(e.Client); } }
protected virtual void OnUserDisconnected(UserDisconnectedEventArgs e) { EventHandler<UserDisconnectedEventArgs> handler = UserDisconnected; if (handler != null) handler(this, e); }