X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fircserverhandler.cpp;h=0fa0372f315e94f1d4e78c4f77fd7f60bfa6d991;hp=90f496e38678eaddd770f1cb768219dc46d73106;hb=0ff076706c3d353ec9b098b1eca270195288774e;hpb=a7b0b0bee42d05ce5af425ed1809e9288403914d diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index 90f496e3..0fa0372f 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -257,30 +257,29 @@ void IrcServerHandler::handlePing(QString prefix, QStringList params) { void IrcServerHandler::handlePrivmsg(QString prefix, QStringList params) { networkInfo()->updateNickFromMask(prefix); - Q_ASSERT(params.count() >= 2); if(params.count()<2) - emit displayMsg(Message::Plain, params[0], "", prefix); - else { - // it's possible to pack multiple privmsgs into one param using ctcp - QStringList messages = server->ctcpHandler()->parse(CtcpHandler::CtcpQuery, prefix, params[0], params[1]); - - // are we the target or is it a channel? - if(networkInfo()->isMyNick(params[0])) { - foreach(QString message, messages) { - if(!message.isEmpty()) { - emit displayMsg(Message::Plain, "", message, prefix, Message::PrivMsg); - } + params << QString(""); + + // it's possible to pack multiple privmsgs into one param using ctcp + QStringList messages = server->ctcpHandler()->parse(CtcpHandler::CtcpQuery, prefix, params[0], params[1]); + + // are we the target or is it a channel? + if(networkInfo()->isMyNick(params[0])) { + foreach(QString message, messages) { + if(!message.isEmpty()) { + emit displayMsg(Message::Plain, "", message, prefix, Message::PrivMsg); } - - } else { - Q_ASSERT(isChannelName(params[0])); // should be channel! - foreach(QString message, messages) { - if(!message.isEmpty()) { - emit displayMsg(Message::Plain, params[0], message, prefix); - } + } + + } else { + Q_ASSERT(isChannelName(params[0])); // should be channel! + foreach(QString message, messages) { + if(!message.isEmpty()) { + emit displayMsg(Message::Plain, params[0], message, prefix); } } } + } void IrcServerHandler::handleQuit(QString prefix, QStringList params) { @@ -392,6 +391,10 @@ void IrcServerHandler::handle353(QString prefix, QStringList params) { void IrcServerHandler::handle432(QString prefix, QStringList params) { Q_UNUSED(prefix) Q_UNUSED(params) + emit displayMsg(Message::Error, "", tr("Your desired nickname contains illegal characters!")); + emit displayMsg(Message::Error, "", tr("Please use /nick to continue your IRC-Session!")); + // FIXME! + // if(params.size() < 2) { // // handle unreal-ircd bug, where unreal ircd doesnt supply a TARGET in ERR_ERRONEUSNICKNAME during registration phase: // // nick @@@ @@ -421,9 +424,11 @@ void IrcServerHandler::handle432(QString prefix, QStringList params) { /* ERR_NICKNAMEINUSE */ void IrcServerHandler::handle433(QString prefix, QStringList params) { Q_UNUSED(prefix) - Q_UNUSED(params) -// QString errnick = params[0]; -// emit displayMsg(Message::Error, "", tr("Nick %1 is already taken").arg(errnick)); + QString errnick = params[0]; + emit displayMsg(Message::Error, "", tr("Nick %1 is already taken").arg(errnick)); + emit displayMsg(Message::Error, "", tr("Please use /nick to continue your IRC-Session!")); + // FIXME! + // // if there is a problem while connecting to the server -> we handle it // // TODO rely on another source... // if(currentServer.isEmpty()) {