if (checkParamCount(cmd, params, 1)) {
QString senderNick = nickFromMask(prefix);
+ net->updateNickFromMask(prefix);
QByteArray msg = params.count() < 2 ? QByteArray() : params.at(1);
QStringList targets = net->serverDecode(params.at(0)).split(',', QString::SkipEmptyParts);
QStringList::const_iterator targetIter;
for (targetIter = targets.constBegin(); targetIter != targets.constEnd(); ++targetIter) {
- QString target = net->isChannelName(*targetIter) ? *targetIter : senderNick;
+ QString target = net->isChannelName(*targetIter) || net->isStatusMsg(*targetIter) ? *targetIter : senderNick;
msg = decrypt(net, target, msg);
else {
if (!target.isEmpty() && net->prefixes().contains(target.at(0)))
target = target.mid(1);
- if (!net->isChannelName(target))
+ if (!net->isChannelName(target)) {
target = nickFromMask(prefix);
+ net->updateNickFromMask(prefix);
+ }
}
#ifdef HAVE_QCA2
QString channel = net->serverDecode(params.at(0));
decParams << channel;
decParams << net->userDecode(nickFromMask(prefix), params.at(1));
+ net->updateNickFromMask(prefix);
}
break;
case EventManager::IrcEventQuit:
if (params.count() >= 1) {
decParams << net->userDecode(nickFromMask(prefix), params.at(0));
+ net->updateNickFromMask(prefix);
}
break;