diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/net/eathena/chathandler.cpp | 13 | ||||
-rw-r--r-- | src/net/eathena/chathandler.h | 2 | ||||
-rw-r--r-- | src/net/eathena/protocol.h | 2 |
3 files changed, 17 insertions, 0 deletions
diff --git a/src/net/eathena/chathandler.cpp b/src/net/eathena/chathandler.cpp index eaea75651..031222e3e 100644 --- a/src/net/eathena/chathandler.cpp +++ b/src/net/eathena/chathandler.cpp @@ -59,6 +59,7 @@ ChatHandler::ChatHandler() : SMSG_MVP, // MVP SMSG_IGNORE_ALL_RESPONSE, SMSG_COLOR_MESSAGE, + SMSG_CHAT_IGNORE_LIST, 0 }; handledMessages = _messages; @@ -101,6 +102,10 @@ void ChatHandler::handleMessage(Net::MessageIn &msg) processIgnoreAllResponse(msg); break; + case SMSG_CHAT_IGNORE_LIST: + processChatIgnoreList(msg); + break; + default: break; } @@ -343,4 +348,12 @@ void ChatHandler::processWhisperResponse(Net::MessageIn &msg) processWhisperResponseContinue(type); } +void ChatHandler::processChatIgnoreList(Net::MessageIn &msg) +{ + // +++ need put it in some object or window + const int count = (msg.readInt16("len") - 4) / 24; + for (int f = 0; f < count; f ++) + msg.readString(24, "nick"); +} + } // namespace EAthena diff --git a/src/net/eathena/chathandler.h b/src/net/eathena/chathandler.h index 6e2689087..29eca423b 100644 --- a/src/net/eathena/chathandler.h +++ b/src/net/eathena/chathandler.h @@ -78,6 +78,8 @@ class ChatHandler final : public MessageHandler, public Ea::ChatHandler void processWhisperResponse(Net::MessageIn &msg); void processGmChat2(Net::MessageIn &msg); + + void processChatIgnoreList(Net::MessageIn &msg); }; } // namespace EAthena diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index 7fc6ea834..73aa49443 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -204,6 +204,8 @@ #define SMSG_MONSTER_HP 0x0977 #define SMSG_PLAYER_HP 0x080e +#define SMSG_CHAT_IGNORE_LIST 0x00d4 + #define SMSG_MAIL_OPEN_WINDOW 0x0260 #define SMSG_PET_MESSAGE 0x01aa |