diff options
author | Florent Le Coz <louiz@louiz.org> | 2013-12-29 19:57:43 +0100 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2014-01-04 01:59:36 +0100 |
commit | acf769d83a40e971ccc1346225688841465b36ee (patch) | |
tree | 8388af28b20e258d412cc34f79cb3c3cfcedbcb6 /src/bridge/bridge.cpp | |
parent | a075517824da7e82e1be7b67d615834851482861 (diff) | |
download | biboumi-acf769d83a40e971ccc1346225688841465b36ee.tar.gz biboumi-acf769d83a40e971ccc1346225688841465b36ee.tar.bz2 biboumi-acf769d83a40e971ccc1346225688841465b36ee.tar.xz biboumi-acf769d83a40e971ccc1346225688841465b36ee.zip |
Use isupport informations to know the user modes when joining
Also remove the duplicate send_self_join methods, user only send_user_join
Diffstat (limited to 'src/bridge/bridge.cpp')
-rw-r--r-- | src/bridge/bridge.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/bridge/bridge.cpp b/src/bridge/bridge.cpp index 7f245db..fb3afc7 100644 --- a/src/bridge/bridge.cpp +++ b/src/bridge/bridge.cpp @@ -189,14 +189,18 @@ void Bridge::send_xmpp_message(const std::string& from, const std::string& autho void Bridge::send_user_join(const std::string& hostname, const std::string& chan_name, - const IrcUser* user) + const IrcUser* user, + const bool self) { - this->xmpp->send_user_join(chan_name + "%" + hostname, user->nick, user->host, this->user_jid); -} - -void Bridge::send_self_join(const std::string& hostname, const std::string& chan_name, const std::string nick) -{ - this->xmpp->send_self_join(chan_name + "%" + hostname, nick, this->user_jid); + std::string affiliation = "participant"; + std::string role = "none"; + if (user->modes.find('o') != user->modes.end()) + { + affiliation = "admin"; + role = "moderator"; + } + this->xmpp->send_user_join(chan_name + "%" + hostname, user->nick, user->host, + affiliation, role, this->user_jid, self); } void Bridge::send_topic(const std::string& hostname, const std::string& chan_name, const std::string topic) |