X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=core%2Fserver.h;h=d4fbfd2fee127a4d09580db66d607f3010ef05ee;hp=ba333d39b0514c77e3ac9739deb9e15e7e7a4839;hb=9d46ee920ab0687940b3d937189eff7e82025d7b;hpb=d6a96a47a3964b9c0b1ea2413601d70d0d327413 diff --git a/core/server.h b/core/server.h index ba333d39..d4fbfd2f 100644 --- a/core/server.h +++ b/core/server.h @@ -47,6 +47,9 @@ class Server : public QThread { // serverState state(); bool isConnected() { return socket.state() == QAbstractSocket::ConnectedState; } QString getNetwork() { return network; } + QStringList providesUserHandlers(); + + enum CtcpType {CtcpQuery, CtcpReply}; public slots: // void setServerOptions(); @@ -64,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); @@ -74,8 +78,8 @@ 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); private slots: @@ -101,11 +105,13 @@ class Server : public QThread { void handleUserNick(QString, QString); void handleUserOp(QString, QString); void handleUserPart(QString, QString); + void handleUserQuery(QString, QString); void handleUserQuit(QString, QString); void handleUserQuote(QString, QString); void handleUserSay(QString, QString); void handleUserTopic(QString, QString); void handleUserVoice(QString, QString); + void handleUserMe(QString, QString); /* void handleServer(QString, QStringList); */ void handleServerJoin(QString, QStringList); @@ -125,9 +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 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; @@ -145,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 {