- : BasicHandler("handleCtcp", session),
- _coreSession(session)
-{
- connect(coreSession(), SIGNAL(networkDisconnected(NetworkId)), this, SLOT(destroyNetsplits(NetworkId)));
- connect(this, SIGNAL(newEvent(Event *)), coreSession()->eventManager(), SLOT(postEvent(Event *)));
-}
-
-bool CoreSessionEventProcessor::checkParamCount(IrcEvent *e, int minParams) {
- if(e->params().count() < minParams) {
- if(e->type() == EventManager::IrcEventNumeric) {
- qWarning() << "Command " << static_cast<IrcEventNumeric *>(e)->number() << " requires " << minParams << "params, got: " << e->params();
- } else {
- QString name = coreSession()->eventManager()->enumName(e->type());
- qWarning() << qPrintable(name) << "requires" << minParams << "params, got:" << e->params();
- }
- e->stop();
- return false;
- }
- return true;
-}
-
-void CoreSessionEventProcessor::tryNextNick(NetworkEvent *e, const QString &errnick, bool erroneus) {
- QStringList desiredNicks = coreSession()->identity(e->network()->identity())->nicks();
- int nextNickIdx = desiredNicks.indexOf(errnick) + 1;
- QString nextNick;
- if(nextNickIdx > 0 && desiredNicks.size() > nextNickIdx) {
- nextNick = desiredNicks[nextNickIdx];
- } else {
- if(erroneus) {
- // FIXME Make this an ErrorEvent or something like that, so it's translated in the client
- MessageEvent *msgEvent = new MessageEvent(Message::Error, e->network(),
- tr("No free and valid nicks in nicklist found. use: /nick <othernick> to continue"),
- QString(), QString(), Message::None, e->timestamp());
- emit newEvent(msgEvent);
- return;
- } else {
- nextNick = errnick + "_";
- }
- }
- // FIXME Use a proper output event for this
- coreNetwork(e)->putRawLine("NICK " + coreNetwork(e)->encodeServerString(nextNick));
-}
-
-void CoreSessionEventProcessor::processIrcEventNumeric(IrcEventNumeric *e) {
- switch(e->number()) {
-
- // CAP stuff
- case 903: case 904: case 905: case 906: case 907:
- qobject_cast<CoreNetwork *>(e->network())->putRawLine("CAP END");
- break;
-
- default:
- break;
- }
-}
-
-void CoreSessionEventProcessor::processIrcEventAuthenticate(IrcEvent *e) {
- if(!checkParamCount(e, 1))
- return;
+ : BasicHandler("handleCtcp", session),
+ _coreSession(session)
+{
+ connect(coreSession(), SIGNAL(networkDisconnected(NetworkId)), this, SLOT(destroyNetsplits(NetworkId)));
+ connect(this, SIGNAL(newEvent(Event *)), coreSession()->eventManager(), SLOT(postEvent(Event *)));
+}