summaryrefslogtreecommitdiff
path: root/src/net/ea/chathandler.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-11-09 17:59:14 +0300
committerAndrei Karas <akaras@inbox.ru>2013-11-09 17:59:14 +0300
commitdb1e60556c72b1b87ff2a384c556ccca724c46d6 (patch)
tree22a5f4e9c4f436ef8e746e0a2d688de80c1597a6 /src/net/ea/chathandler.cpp
parentc2bb49be52a92deccec7428b6859242688fc8987 (diff)
parent1716861f0ee2f7a3714c5b44bb0f017c3d8d3b2c (diff)
downloadplus-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.cpp20
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);