// IRC SERVER HANDLER
//******************************/
void IrcServerHandler::handleJoin(const QString &prefix, const QList<QByteArray> ¶ms) {
- Q_ASSERT(params.count() == 1);
+ if(params.count() < 1) return;
QString channel = serverDecode(params[0]);
IrcUser *ircuser = network()->updateNickFromMask(prefix);
emit displayMsg(Message::Join, BufferInfo::ChannelBuffer, channel, channel, prefix);
//qDebug() << "IrcServerHandler::handleJoin()" << prefix << params;
ircuser->joinChannel(channel);
- if(network()->isMe(ircuser)) network()->addPersistentChannel(channel, networkConnection()->channelKey(channel));
+ if(network()->isMe(ircuser)) networkConnection()->setChannelJoined(channel);
}
void IrcServerHandler::handleKick(const QString &prefix, const QList<QByteArray> ¶ms) {
network()->updateNickFromMask(prefix);
IrcUser *victim = network()->ircUser(params[1]);
+ if(!victim) return;
QString channel = serverDecode(params[0]);
- Q_ASSERT(victim);
victim->partChannel(channel);
msg = userDecode(ircuser->nick(), params[1]);
emit displayMsg(Message::Part, BufferInfo::ChannelBuffer, channel, msg, prefix);
- if(network()->isMe(ircuser)) network()->removePersistentChannel(channel);
+ if(network()->isMe(ircuser)) networkConnection()->setChannelParted(channel);
}
void IrcServerHandler::handlePing(const QString &prefix, const QList<QByteArray> ¶ms) {