From 70b378e1850832202a75bb35d6c6ca609e4ebe66 Mon Sep 17 00:00:00 2001 From: David Athay Date: Thu, 23 Apr 2009 17:30:23 +0100 Subject: Added listing all online users --- src/chat-server/chathandler.cpp | 21 +++++++++++++++++++++ src/chat-server/chathandler.hpp | 5 +++++ 2 files changed, 26 insertions(+) (limited to 'src/chat-server') diff --git a/src/chat-server/chathandler.cpp b/src/chat-server/chathandler.cpp index 515d56b..c1387ce 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::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 c58206d..1de44fc 100644 --- a/src/chat-server/chathandler.hpp +++ b/src/chat-server/chathandler.hpp @@ -163,6 +163,11 @@ class ChatHandler : public ConnectionHandler void handlePrivMsgMessage(ChatClient &client, MessageIn &msg); + /** + * Deal with Who messages. + */ + void handleWhoMessage(ChatClient &client); + /** * Deal with player entering channel. */ -- cgit