Implemented use of alternative nickname.

master
Tomatix 5 years ago
parent b39afed624
commit 465b9fff0b
  1. 7
      IRCClient/IRCBase.cpp
  2. 11
      IdealIRC/IRC.cpp

@ -637,8 +637,11 @@ const std::string& IRCBase::getNickname() const
void IRCBase::setNickname(const std::string& nickname)
{
if (mp->isConnected)
mp->write(Command::IRC::NICK, nickname);
if (mp->isConnected) {
if (!isOnline())
mp->nickname = nickname;
mp->write(Command::IRC::NICK, nickname);
}
else
mp->nickname = nickname;
}

@ -586,6 +586,17 @@ void IRC::onMsgNumeric(const IRCPrefix& /*sender*/, const std::string& num, cons
}
}
if (num == Numeric::ERR_NICKNAMEINUSE && !isOnline()) {
auto& conf = ConfigMgr::instance();
auto altNick = conf.connection("AltNickname");
if (!altNick.isEmpty() && altNick.toStdString() != getNickname()) {
setNickname(altNick.toStdString());
}
else {
getStatus().getInputBox().setText("/NICK ");
}
}
/* Script event */
{
ScriptArray pval;

Loading…
Cancel
Save