private void KickEventHandler(IRCEvent e)
    {
        IRCKickEvent kickEvent         = (IRCKickEvent)e;
        string       victimNick        = kickEvent.Victim.Nick;
        string       properChannelName = "#" + m_ircChannelName;

        LogText("[" + kickEvent.Agressor.Nick + " kicked " + victimNick + " from " + kickEvent.Channel + "] " + kickEvent.Reason);

        if (kickEvent.Channel == properChannelName)
        {
            if (victimNick == m_ircNick)
            {
                // We got kicked.
                // Try to re-connect to the game channel
                m_reconnectionAttempts = 0;
                SetState(eState.failed);
            }
            else
            {
                // Someone else got kicked
                PostOtherPlayerLeftGameChannel(victimNick);
            }

            OutputText("[" + kickEvent.Agressor.Nick + " kicked " + m_ircNick + " from game] " + kickEvent.Reason);
        }
    }
    private void OnIRCUserKicked(string[] tokens, string message)
    {
        IRCKickEvent kick = new IRCKickEvent();

        kick.Agressor    = IRCUser.GetUserFromAddress(tokens[0].Substring(1));
        kick.Channel     = tokens[2];
        kick.Victim      = new IRCUser();
        kick.Victim.Nick = tokens[3];
        kick.Reason      = (message == tokens[3]) ? "" : message;

        DispatchEvent(kick);
    }
    private void OnIRCUserKicked(string[] tokens, string message)
    {
        IRCKickEvent kick = new IRCKickEvent();

        kick.Agressor = IRCUser.GetUserFromAddress(tokens[0].Substring(1));
        kick.Channel = tokens[2];
        kick.Victim = new IRCUser();
        kick.Victim.Nick = tokens[3];
        kick.Reason = (message == tokens[3]) ? "" : message;

        DispatchEvent(kick);
    }