Fixed a bug in SqliteStorage::setup() which could cause the Wizard to lock up in...
[quassel.git] / src / core / ircserverhandler.cpp
index 90f496e..0fa0372 100644 (file)
@@ -257,30 +257,29 @@ void IrcServerHandler::handlePing(QString prefix, QStringList 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) {
@@ -392,6 +391,10 @@ void IrcServerHandler::handle353(QString prefix, QStringList params) {
 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 @@@
@@ -421,9 +424,11 @@ void IrcServerHandler::handle432(QString prefix, QStringList params) {
 /* 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()) {