diff options
author | Attila Molnar <attilamolnar@hush.com> | 2015-02-11 16:46:11 +0100 |
---|---|---|
committer | Attila Molnar <attilamolnar@hush.com> | 2015-02-11 16:46:11 +0100 |
commit | 8c2135aad0b2bbd8afca21a6c0664a9e4182dc9b (patch) | |
tree | bea044c796035dfbbb7af00a2bc90cab173b760e /src/modules/m_ircv3.cpp | |
parent | 7492344e64491cea6bbb5c9354dceb804bb908ac (diff) |
Convert the account login event to use the new cross-module event system
Diffstat (limited to 'src/modules/m_ircv3.cpp')
-rw-r--r-- | src/modules/m_ircv3.cpp | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/src/modules/m_ircv3.cpp b/src/modules/m_ircv3.cpp index b1c04cdf5..b80c110f4 100644 --- a/src/modules/m_ircv3.cpp +++ b/src/modules/m_ircv3.cpp @@ -40,7 +40,7 @@ class WriteNeighboursWithExt : public User::ForEachNeighborHandler } }; -class ModuleIRCv3 : public Module +class ModuleIRCv3 : public Module, public AccountEventListener { GenericCap cap_accountnotify; GenericCap cap_awaynotify; @@ -52,7 +52,9 @@ class ModuleIRCv3 : public Module CUList last_excepts; public: - ModuleIRCv3() : cap_accountnotify(this, "account-notify"), + ModuleIRCv3() + : AccountEventListener(this) + , cap_accountnotify(this, "account-notify"), cap_awaynotify(this, "away-notify"), cap_extendedjoin(this, "extended-join") { @@ -74,25 +76,21 @@ class ModuleIRCv3 : public Module cap_extendedjoin.HandleEvent(ev); if (accountnotify) - { cap_accountnotify.HandleEvent(ev); + } - if (ev.id == "account_login") - { - AccountEvent* ae = static_cast<AccountEvent*>(&ev); - - // :nick!user@host ACCOUNT account - // or - // :nick!user@host ACCOUNT * - std::string line = ":" + ae->user->GetFullHost() + " ACCOUNT "; - if (ae->account.empty()) - line += "*"; - else - line += std::string(ae->account); - - WriteNeighboursWithExt(ae->user, line, cap_accountnotify.ext); - } - } + void OnAccountChange(User* user, const std::string& newaccount) CXX11_OVERRIDE + { + // :nick!user@host ACCOUNT account + // or + // :nick!user@host ACCOUNT * + std::string line = ":" + user->GetFullHost() + " ACCOUNT "; + if (newaccount.empty()) + line += "*"; + else + line += newaccount; + + WriteNeighboursWithExt(user, line, cap_accountnotify.ext); } void OnUserJoin(Membership* memb, bool sync, bool created, CUList& excepts) CXX11_OVERRIDE |