/***************************************************************************
- * Copyright (C) 2005-07 by The Quassel Team *
+ * Copyright (C) 2005-07 by the Quassel IRC Team *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
+ * (at your option) version 3. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
QString channel = params[0];
IrcUser *ircuser = networkInfo()->updateNickFromMask(prefix);
emit displayMsg(Message::Join, channel, channel, prefix);
-
+ qDebug() << "IrcServerHandler::handleJoin()" << prefix << params;
ircuser->joinChannel(channel);
}
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) {
IrcUser *ircuser = networkInfo()->updateNickFromMask(prefix);
Q_ASSERT(ircuser);
+ qDebug() << "IrcServerHandler:handleQuit" << prefix << params;
QString msg;
if(params.count())
foreach(QString channel, ircuser->channels())
emit displayMsg(Message::Quit, channel, msg, prefix);
-
- ircuser->deleteLater();
+
+ networkInfo()->removeIrcUser(nickFromMask(prefix));
}
void IrcServerHandler::handleTopic(QString prefix, QStringList params) {
mode = networkInfo()->prefixToMode(nick[0]);
nick = nick.mid(1);
}
-
+
IrcUser *ircuser = networkInfo()->newIrcUser(nick);
ircuser->joinChannel(channelname);
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 <othernick> 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 @@@
/* 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 <othernick> 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()) {