summaryrefslogtreecommitdiffstats
path: root/src/chat-server
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2009-04-23 17:30:23 +0100
committerDavid Athay <ko2fan@gmail.com>2009-04-23 17:30:23 +0100
commit70b378e1850832202a75bb35d6c6ca609e4ebe66 (patch)
treee4c82f2bc8a41153b024f23e3f1866721304e5cd /src/chat-server
parentd48980a532d1d10593fbef888d4355015afc7936 (diff)
downloadmanaserv-70b378e1850832202a75bb35d6c6ca609e4ebe66.tar.gz
manaserv-70b378e1850832202a75bb35d6c6ca609e4ebe66.tar.xz
manaserv-70b378e1850832202a75bb35d6c6ca609e4ebe66.zip
Added listing all online users
Diffstat (limited to 'src/chat-server')
-rw-r--r--src/chat-server/chathandler.cpp21
-rw-r--r--src/chat-server/chathandler.hpp5
2 files changed, 26 insertions, 0 deletions
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<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 c58206d..1de44fc 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