summaryrefslogtreecommitdiff
path: root/src
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
parentd48980a532d1d10593fbef888d4355015afc7936 (diff)
downloadmanaserv-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.cpp21
-rw-r--r--src/chat-server/chathandler.hpp5
-rw-r--r--src/defines.h3
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