X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=core%2Fserver.h;h=d4fbfd2fee127a4d09580db66d607f3010ef05ee;hp=b2fb23047723fc8a17d98da483d788d39179cf69;hb=9d46ee920ab0687940b3d937189eff7e82025d7b;hpb=fd718b6209f1ad2bcd199c44c2dae3b0cb0f633b diff --git a/core/server.h b/core/server.h index b2fb2304..d4fbfd2f 100644 --- a/core/server.h +++ b/core/server.h @@ -49,6 +49,8 @@ class Server : public QThread { QString getNetwork() { return network; } QStringList providesUserHandlers(); + enum CtcpType {CtcpQuery, CtcpReply}; + public slots: // void setServerOptions(); void sendState(); @@ -65,7 +67,8 @@ class Server : public QThread { void serverState(QString net, VarMap data); void recvRawServerMsg(QString); void displayStatusMsg(QString); - void displayMsg(Message msg); + //void displayMsg(Message msg); + void displayMsg(Message::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None); void connected(QString network); void disconnected(QString network); @@ -75,7 +78,6 @@ class Server : public QThread { void nickUpdated(QString network, QString nick, VarMap props); void modeSet(QString network, QString target, QString mode); void topicSet(QString network, QString buffer, QString topic); - void setNicks(QString network, QString buffer, QStringList nicks); void ownNickSet(QString network, QString newNick); void queryRequested(QString network, QString nick); @@ -109,6 +111,7 @@ class Server : public QThread { void handleUserSay(QString, QString); void handleUserTopic(QString, QString); void handleUserVoice(QString, QString); + void handleUserMe(QString, QString); /* void handleServer(QString, QStringList); */ void handleServerJoin(QString, QStringList); @@ -128,10 +131,16 @@ class Server : public QThread { void handleServer332(QString, QStringList); // RPL_TOPIC void handleServer333(QString, QStringList); // Topic set by... void handleServer353(QString, QStringList); // RPL_NAMREPLY - void handleServer433(QString, QStringList); // RPL_NICKNAMEINUSER + void handleServer432(QString, QStringList); // ERR_ERRONEUSNICKNAME + void handleServer433(QString, QStringList); // ERR_NICKNAMEINUSE + + void handleCtcpAction(CtcpType, QString, QString, QString); + void handleCtcpPing(CtcpType, QString, QString, QString); + void handleCtcpVersion(CtcpType, QString, QString, QString); void defaultServerHandler(QString cmd, QString prefix, QStringList params); void defaultUserHandler(QString buf, QString cmd, QString msg); + void defaultCtcpHandler(CtcpType ctcptype, QString prefix, QString cmd, QString target, QString param); private: QString network; @@ -149,6 +158,18 @@ class Server : public QThread { void handleServerMsg(QString rawMsg); void handleUserInput(QString buffer, QString usrMsg); + // CTCP Stuff + QString XDELIM; + QHash ctcpMDequoteHash; + QHash ctcpXDelimDequoteHash; + QString ctcpDequote(QString); + QString ctcpXdelimDequote(QString); + QStringList parseCtcp(CtcpType, QString, QString, QString); + + QString ctcpPack(QString ctcpTag, QString message); + void ctcpQuery(QString bufname, QString ctcpTag, QString message); + void ctcpReply(QString bufname, QString ctcpTag, QString message); + QString updateNickFromMask(QString mask); class ParseError : public Exception {