diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-11-09 17:59:14 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-11-09 17:59:14 +0300 |
commit | db1e60556c72b1b87ff2a384c556ccca724c46d6 (patch) | |
tree | 22a5f4e9c4f436ef8e746e0a2d688de80c1597a6 /src/net/ea/chathandler.cpp | |
parent | c2bb49be52a92deccec7428b6859242688fc8987 (diff) | |
parent | 1716861f0ee2f7a3714c5b44bb0f017c3d8d3b2c (diff) | |
download | plus-db1e60556c72b1b87ff2a384c556ccca724c46d6.tar.gz plus-db1e60556c72b1b87ff2a384c556ccca724c46d6.tar.bz2 plus-db1e60556c72b1b87ff2a384c556ccca724c46d6.tar.xz plus-db1e60556c72b1b87ff2a384c556ccca724c46d6.zip |
Merge branch 'master' into stable
Diffstat (limited to 'src/net/ea/chathandler.cpp')
-rw-r--r-- | src/net/ea/chathandler.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/net/ea/chathandler.cpp b/src/net/ea/chathandler.cpp index deaef6984..265f59cb1 100644 --- a/src/net/ea/chathandler.cpp +++ b/src/net/ea/chathandler.cpp @@ -48,10 +48,17 @@ namespace Ea ChatHandler::ChatHandler() : mSentWhispers(), mShowAllLang(serverConfig.getValue("showAllLang", 0)), - mShowMotd(config.getBoolValue("showmotd")) + mShowMotd(config.getBoolValue("showmotd")), + mSkipping(true) { } +void ChatHandler::clear() +{ + mShowMotd = config.getBoolValue("showmotd"); + mSkipping = true; +} + void ChatHandler::me(const std::string &text, const std::string &channel) const { // here need string duplication @@ -311,7 +318,7 @@ void ChatHandler::processBeingChat(Net::MessageIn &msg, } void ChatHandler::processChat(Net::MessageIn &msg, const bool normalChat, - const bool channels) const + const bool channels) { BLOCK_START("ChatHandler::processChat") int chatMsgLength = msg.readInt16() - 4; @@ -350,6 +357,15 @@ void ChatHandler::processChat(Net::MessageIn &msg, const bool normalChat, } } + if (chatMsg.find(": ") == std::string::npos && !mShowMotd + && mSkipping && channel.empty()) + { + // skip motd from "new" tmw server + return; + } + + mSkipping = false; + if (pos != std::string::npos) chatMsg.erase(0, pos + 3); |