Meebey.SmartIrc4net.IrcClient._Event_ERR_NICKNAMEINUSE C# (CSharp) Method

_Event_ERR_NICKNAMEINUSE() private method

Event handler for nickname in use error messages
private _Event_ERR_NICKNAMEINUSE ( IrcMessageData ircdata ) : void
ircdata IrcMessageData Message data containing nickname in use error information
return void
        private void _Event_ERR_NICKNAMEINUSE(IrcMessageData ircdata)
        {
            #if LOG4NET
            Logger.Connection.Warn("nickname collision detected, changing nickname");
            #endif
            if (!AutoNickHandling) {
                return;
            }

            string nickname;
            // if a nicklist has been given loop through the nicknames
            // if the upper limit of this list has been reached and still no nickname has registered
            // then generate a random nick
            if (NicknameList != null && _CurrentNickname == NicknameList.Length-1) {
                Random rand = new Random();
                int number = rand.Next(999);
                if (Nickname.Length > 5) {
                    nickname = Nickname.Substring(0, 5)+number;
                } else {
                    nickname = Nickname.Substring(0, Nickname.Length-1)+number;
                }
            } else {
                nickname = _NextNickname();
            }
            // change the nickname
            RfcNick(nickname, Priority.Critical);
        }