X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=core%2Fserver.cpp;h=e5ed4eb33f32638588c4221da2264049416ad32a;hp=01cf281916a0e2653b09661270608895fad9bc26;hb=26586e615ffe42bb2b1b307ed1324a6e3051f5da;hpb=9d46ee920ab0687940b3d937189eff7e82025d7b diff --git a/core/server.cpp b/core/server.cpp index 01cf2819..e5ed4eb3 100644 --- a/core/server.cpp +++ b/core/server.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005/06 by The Quassel Team * + * Copyright (C) 2005-07 by The Quassel Team * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -26,7 +26,7 @@ #include #include -Server::Server(QString net) : network(net) { +Server::Server(UserId uid, QString net) : user(uid), network(net) { QString MQUOTE = QString('\020'); ctcpMDequoteHash[MQUOTE + '0'] = QString('\000'); ctcpMDequoteHash[MQUOTE + 'n'] = QString('\n'); @@ -67,8 +67,8 @@ void Server::sendState() { void Server::connectToIrc(QString net) { if(net != network) return; // not me! - networkSettings = global->getData("Networks").toMap()[net].toMap(); - identity = global->getData("Identities").toMap()[networkSettings["Identity"].toString()].toMap(); + networkSettings = Global::data(user, "Networks").toMap()[net].toMap(); + identity = Global::data(user, "Identities").toMap()[networkSettings["Identity"].toString()].toMap(); QList servers = networkSettings["Servers"].toList(); QString host = servers[0].toMap()["Address"].toString(); quint16 port = servers[0].toMap()["Port"].toUInt(); @@ -167,7 +167,7 @@ void Server::handleServerMsg(QString msg) { return; } // OK, first we split the raw message into its various parts... - QString prefix; + QString prefix = ""; QString cmd; QStringList params; @@ -697,8 +697,10 @@ void Server::handleServerQuit(QString prefix, QStringList params) { QString nick = updateNickFromMask(prefix); Q_ASSERT(nicks.contains(nick)); VarMap chans = nicks[nick]["Channels"].toMap(); + QString msg; + if(params.count()) msg = params[0]; foreach(QString c, chans.keys()) { - emit displayMsg(Message::Quit, c, params[0], prefix); + emit displayMsg(Message::Quit, c, msg, prefix); } nicks.remove(nick); emit nickRemoved(network, nick); @@ -736,6 +738,7 @@ void Server::handleServer001(QString prefix, QStringList params) { /* RPL_ISUPPORT */ // TODO Complete 005 handling, also use sensible defaults for non-sent stuff void Server::handleServer005(QString prefix, QStringList params) { + //qDebug() << prefix << params; params.removeLast(); foreach(QString p, params) { QString key = p.section("=", 0, 0); @@ -866,8 +869,8 @@ void Server::handleCtcpAction(CtcpType ctcptype, QString prefix, QString target, void Server::handleCtcpPing(CtcpType ctcptype, QString prefix, QString target, QString param) { if(ctcptype == CtcpQuery) { - ctcpReply(userFromMask(prefix), "PING", param); - emit displayMsg(Message::Plain, "", tr("Received CTCP PING request by %1").arg(prefix)); + ctcpReply(nickFromMask(prefix), "PING", param); + emit displayMsg(Message::Server, "", tr("Received CTCP PING request by %1").arg(prefix)); } else { // display ping answer } @@ -875,9 +878,10 @@ void Server::handleCtcpPing(CtcpType ctcptype, QString prefix, QString target, Q void Server::handleCtcpVersion(CtcpType ctcptype, QString prefix, QString target, QString param) { if(ctcptype == CtcpQuery) { - // FIXME use real Info about quasel :) - ctcpReply(userFromMask(prefix), "VERSION", QString("Quassel:pre Release:*nix")); - emit displayMsg(Message::Plain, "", tr("Received CTCP VERSION request by %1").arg(prefix)); + // FIXME use real Info about quassel :) + //ctcpReply(nickFromMask(prefix), "VERSION", QString("Quassel:pre Release:*nix")); + ctcpReply(nickFromMask(prefix), "VERSION", QString("Quassel IRC (Pre-Release) - http://www.quassel-irc.org")); + emit displayMsg(Message::Server, "", tr("Received CTCP VERSION request by %1").arg(prefix)); } else { // TODO display Version answer }