public bool InChannel(string channelName) { if (_channels.ContainsKey(channelName)) { if (_channels[channelName].Joined) { return(true); } ChannelRemoved.Fire(this, new ChannelEventArgs(_channels[channelName])); if (!_channels.Remove(channelName)) { Debug.WriteLine("Failed to remove channel"); } //TODO: Is this all that needs to be done? } return(false); }
private void Listener_OnPart(User user, string channel, string reason) { var chan = _channels[channel]; if (chan == null) { return; } if (IsMe(user)) { PartSelf.Fire(this, new PartEventArgs(user, chan, String.Empty)); return; } Part.Fire(this, new PartEventArgs(user, chan, reason)); chan.UserPart(user, reason); _channels.Remove(chan.Name); ChannelRemoved.Fire(this, new ChannelEventArgs(chan)); Connection.Sender.Names(channel); }