diff options
Diffstat (limited to 'Swiftob/Commands.cpp')
-rw-r--r-- | Swiftob/Commands.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Swiftob/Commands.cpp b/Swiftob/Commands.cpp index 38e5f57..fd1b983 100644 --- a/Swiftob/Commands.cpp +++ b/Swiftob/Commands.cpp @@ -75,8 +75,16 @@ bool Commands::runCommand(const std::string& name, const std::string& params, Sw } void Commands::runListeners(Swift::Message::ref message) { + bool ownMessage = false; + JID room = message->getFrom().toBare(); + if (mucs_->contains(room)) { + MUC::ref muc = mucs_->getMUC(room); + ownMessage = muc->getOwnNick() == message->getFrom().getResource(); + } foreach (ListenerCallback listener, listeners_) { - listener(message); + if (!ownMessage || listener.second) { + listener.first(message); + } } } |