summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2015-02-11 16:52:39 +0100
committerAttila Molnar <attilamolnar@hush.com>2015-02-11 16:52:39 +0100
commit971788e42fbdce52a6dcf201e52afd690506c3a9 (patch)
tree77b66ba257d46a31443162986b1d222102dfb16c /src/modules
parent8c2135aad0b2bbd8afca21a6c0664a9e4182dc9b (diff)
Allow enabling/disabling caps via GenericCap::SetActive()
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/m_ircv3.cpp27
1 files changed, 10 insertions, 17 deletions
diff --git a/src/modules/m_ircv3.cpp b/src/modules/m_ircv3.cpp
index b80c110f4..861ccec14 100644
--- a/src/modules/m_ircv3.cpp
+++ b/src/modules/m_ircv3.cpp
@@ -45,9 +45,6 @@ class ModuleIRCv3 : public Module, public AccountEventListener
GenericCap cap_accountnotify;
GenericCap cap_awaynotify;
GenericCap cap_extendedjoin;
- bool accountnotify;
- bool awaynotify;
- bool extendedjoin;
CUList last_excepts;
@@ -63,20 +60,16 @@ class ModuleIRCv3 : public Module, public AccountEventListener
void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* conf = ServerInstance->Config->ConfValue("ircv3");
- accountnotify = conf->getBool("accountnotify", true);
- awaynotify = conf->getBool("awaynotify", true);
- extendedjoin = conf->getBool("extendedjoin", true);
+ cap_accountnotify.SetActive(conf->getBool("accountnotify", true));
+ cap_awaynotify.SetActive(conf->getBool("awaynotify", true));
+ cap_extendedjoin.SetActive(conf->getBool("extendedjoin", true));
}
void OnEvent(Event& ev) CXX11_OVERRIDE
{
- if (awaynotify)
- cap_awaynotify.HandleEvent(ev);
- if (extendedjoin)
- cap_extendedjoin.HandleEvent(ev);
-
- if (accountnotify)
- cap_accountnotify.HandleEvent(ev);
+ cap_awaynotify.HandleEvent(ev);
+ cap_extendedjoin.HandleEvent(ev);
+ cap_accountnotify.HandleEvent(ev);
}
void OnAccountChange(User* user, const std::string& newaccount) CXX11_OVERRIDE
@@ -96,10 +89,10 @@ class ModuleIRCv3 : public Module, public AccountEventListener
void OnUserJoin(Membership* memb, bool sync, bool created, CUList& excepts) CXX11_OVERRIDE
{
// Remember who is not going to see the JOIN because of other modules
- if ((awaynotify) && (memb->user->IsAway()))
+ if ((cap_awaynotify.IsActive()) && (memb->user->IsAway()))
last_excepts = excepts;
- if (!extendedjoin)
+ if (!cap_extendedjoin.IsActive())
return;
/*
@@ -168,7 +161,7 @@ class ModuleIRCv3 : public Module, public AccountEventListener
ModResult OnSetAway(User* user, const std::string &awaymsg) CXX11_OVERRIDE
{
- if (awaynotify)
+ if (cap_awaynotify.IsActive())
{
// Going away: n!u@h AWAY :reason
// Back from away: n!u@h AWAY
@@ -183,7 +176,7 @@ class ModuleIRCv3 : public Module, public AccountEventListener
void OnPostJoin(Membership *memb) CXX11_OVERRIDE
{
- if ((!awaynotify) || (!memb->user->IsAway()))
+ if ((!cap_awaynotify.IsActive()) || (!memb->user->IsAway()))
return;
std::string line = ":" + memb->user->GetFullHost() + " AWAY :" + memb->user->awaymsg;