X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fircserverhandler.cpp;h=0fa0372f315e94f1d4e78c4f77fd7f60bfa6d991;hp=ab5c85c9810b4a44901fdb65e952db6fd64eb095;hb=b49c0a2cb8a2e7225bfa3c5ab00ada6af0673a15;hpb=902c95728306e5ba115de84800fc8d5d239c9d62 diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index ab5c85c9..0fa0372f 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -175,6 +175,9 @@ void IrcServerHandler::handleKick(QString prefix, QStringList params) { } void IrcServerHandler::handleMode(QString prefix, QStringList params) { + Q_UNUSED(prefix) + Q_UNUSED(params) + // if(isChannelName(params[0])) { // // TODO only channel-user modes supported by now // QString prefixes = serverSupports["PrefixModes"].toString(); @@ -217,10 +220,11 @@ void IrcServerHandler::handleNick(QString prefix, QStringList params) { QString oldnick = ircuser->nick(); foreach(QString channel, ircuser->channels()) { - if(networkInfo()->isMyNick(oldnick)) - emit displayMsg(Message::Nick, channel, newnick, prefix); - else + if(networkInfo()->isMyNick(oldnick)) { emit displayMsg(Message::Nick, channel, newnick, newnick); + } else { + emit displayMsg(Message::Nick, channel, newnick, prefix); + } } ircuser->setNick(newnick); } @@ -247,35 +251,35 @@ void IrcServerHandler::handlePart(QString prefix, QStringList params) { } void IrcServerHandler::handlePing(QString prefix, QStringList params) { + Q_UNUSED(prefix) emit putCmd("PONG", 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) { @@ -326,6 +330,7 @@ void IrcServerHandler::handle001(QString prefix, QStringList params) { /* RPL_ISUPPORT */ // TODO Complete 005 handling, also use sensible defaults for non-sent stuff void IrcServerHandler::handle005(QString prefix, QStringList params) { + Q_UNUSED(prefix) QString rpl_isupport_suffix = params.takeLast(); if(rpl_isupport_suffix.toLower() != QString("are supported by this server")) { qWarning() << "Received invalid RPL_ISUPPORT! Suffix is:" << rpl_isupport_suffix << "Excpected: are supported by this server"; @@ -342,23 +347,27 @@ void IrcServerHandler::handle005(QString prefix, QStringList params) { /* RPL_NOTOPIC */ void IrcServerHandler::handle331(QString prefix, QStringList params) { + Q_UNUSED(prefix) networkInfo()->ircChannel(params[0])->setTopic(QString()); emit displayMsg(Message::Server, params[0], tr("No topic is set for %1.").arg(params[0])); } /* RPL_TOPIC */ void IrcServerHandler::handle332(QString prefix, QStringList params) { + Q_UNUSED(prefix) networkInfo()->ircChannel(params[0])->setTopic(params[1]); emit displayMsg(Message::Server, params[0], tr("Topic for %1 is \"%2\"").arg(params[0]).arg(params[1])); } /* Topic set by... */ void IrcServerHandler::handle333(QString prefix, QStringList params) { + Q_UNUSED(prefix) emit displayMsg(Message::Server, params[0], tr("Topic set by %1 on %2").arg(params[1]).arg(QDateTime::fromTime_t(params[2].toUInt()).toString())); } /* RPL_NAMREPLY */ void IrcServerHandler::handle353(QString prefix, QStringList params) { + Q_UNUSED(prefix) params.removeFirst(); // either "=", "*" or "@" indicating a public, private or secret channel QString channelname = params.takeFirst(); @@ -380,6 +389,12 @@ void IrcServerHandler::handle353(QString prefix, QStringList params) { /* ERR_ERRONEUSNICKNAME */ 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 @@@ @@ -408,8 +423,12 @@ void IrcServerHandler::handle432(QString prefix, QStringList params) { /* ERR_NICKNAMEINUSE */ void IrcServerHandler::handle433(QString prefix, QStringList params) { -// QString errnick = params[0]; -// emit displayMsg(Message::Error, "", tr("Nick %1 is already taken").arg(errnick)); + Q_UNUSED(prefix) + 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()) {