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);