private void _Event_KICK(IrcMessageData ircdata)
{
string channelname = ircdata.Channel;
string who = ircdata.Nick;
string whom = ircdata.RawMessageArray[3];
string reason = ircdata.Message;
bool isme = IsMe(whom);
if (isme) {
_JoinedChannels.Remove(channelname);
}
if (ActiveChannelSyncing) {
if (isme) {
Channel channel = GetChannel(channelname);
_Channels.Remove(channelname);
if (_AutoRejoinOnKick) {
RfcJoin(channel.Name, channel.Key);
}
} else {
_RemoveChannelUser(channelname, whom);
_RemoveIrcUser(whom);
}
} else {
if (isme && AutoRejoinOnKick) {
RfcJoin(channelname);
}
}
if (OnKick != null) {
OnKick(this, new KickEventArgs(ircdata, channelname, who, whom, reason));
}
}