diff options
author | David Athay <ko2fan@gmail.com> | 2009-04-23 17:30:23 +0100 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2009-04-23 17:30:23 +0100 |
commit | 70b378e1850832202a75bb35d6c6ca609e4ebe66 (patch) | |
tree | e4c82f2bc8a41153b024f23e3f1866721304e5cd /src | |
parent | d48980a532d1d10593fbef888d4355015afc7936 (diff) | |
download | manaserv-70b378e1850832202a75bb35d6c6ca609e4ebe66.tar.gz manaserv-70b378e1850832202a75bb35d6c6ca609e4ebe66.tar.bz2 manaserv-70b378e1850832202a75bb35d6c6ca609e4ebe66.tar.xz manaserv-70b378e1850832202a75bb35d6c6ca609e4ebe66.zip |
Added listing all online users
Diffstat (limited to 'src')
-rw-r--r-- | src/chat-server/chathandler.cpp | 21 | ||||
-rw-r--r-- | src/chat-server/chathandler.hpp | 5 | ||||
-rw-r--r-- | src/defines.h | 3 |
3 files changed, 29 insertions, 0 deletions
diff --git a/src/chat-server/chathandler.cpp b/src/chat-server/chathandler.cpp index 515d56b8..c1387ce2 100644 --- a/src/chat-server/chathandler.cpp +++ b/src/chat-server/chathandler.cpp @@ -164,6 +164,10 @@ void ChatHandler::processMessage(NetComputer *comp, MessageIn &message) handlePrivMsgMessage(computer, message); break; + case PCMSG_WHO: + handleWhoMessage(computer); + break; + case PCMSG_ENTER_CHANNEL: handleEnterChannelMessage(computer, message); break; @@ -370,6 +374,23 @@ ChatHandler::handlePrivMsgMessage(ChatClient &client, MessageIn &msg) storage->addTransaction(trans); } +void ChatHandler::handleWhoMessage(ChatClient &client) +{ + MessageOut reply(CPMSG_WHO_RESPONSE); + + std::map<std::string, ChatClient*>::iterator itr, itr_end; + itr = mPlayerMap.begin(); + itr_end = mPlayerMap.end(); + + while (itr != itr_end) + { + reply.writeString(itr->first); + ++itr; + } + + client.send(reply); +} + void ChatHandler::handleEnterChannelMessage(ChatClient &client, MessageIn &msg) { MessageOut reply(CPMSG_ENTER_CHANNEL_RESPONSE); diff --git a/src/chat-server/chathandler.hpp b/src/chat-server/chathandler.hpp index c58206d9..1de44fc9 100644 --- a/src/chat-server/chathandler.hpp +++ b/src/chat-server/chathandler.hpp @@ -164,6 +164,11 @@ class ChatHandler : public ConnectionHandler handlePrivMsgMessage(ChatClient &client, MessageIn &msg); /** + * Deal with Who messages. + */ + void handleWhoMessage(ChatClient &client); + + /** * Deal with player entering channel. */ void diff --git a/src/defines.h b/src/defines.h index c657e6ba..7ffb2422 100644 --- a/src/defines.h +++ b/src/defines.h @@ -227,6 +227,9 @@ enum { PCMSG_CHAT = 0x0410, // S text, W channel PCMSG_ANNOUNCE = 0x0411, // S text PCMSG_PRIVMSG = 0x0412, // S user, S text + PCMSG_WHO = 0x0415, // - + CPMSG_WHO_RESPONSE = 0x0416, // { S user } + // -- Channeling CPMSG_CHANNEL_EVENT = 0x0430, // W channel, B event, S info PCMSG_ENTER_CHANNEL = 0x0440, // S channel, S password |