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);
}