X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=core%2Fserver.h;h=9664151b6499d3532f21fa3fb28773f4310cdedb;hb=a72defa2957b67d05fb4fb3d18b1fb6755a5908c;hp=ba333d39b0514c77e3ac9739deb9e15e7e7a4839;hpb=d6a96a47a3964b9c0b1ea2413601d70d0d327413;p=quassel.git diff --git a/core/server.h b/core/server.h index ba333d39..9664151b 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,6 +105,7 @@ 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); @@ -125,9 +130,14 @@ 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 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 +155,11 @@ class Server : public QThread { void handleServerMsg(QString rawMsg); void handleUserInput(QString buffer, QString usrMsg); + QHash ctcpMDequoteHash; + QString ctcpDequote(QString); + QString ctcpXdelimDequote(QString); + QStringList parseCtcp(CtcpType, QString, QString, QString); + QString updateNickFromMask(QString mask); class ParseError : public Exception {