summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiftob/Commands.cpp')
-rw-r--r--Swiftob/Commands.cpp10
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);
+ }
}
}