diff options
Diffstat (limited to 'modules/m_helpchan.cpp')
-rw-r--r-- | modules/m_helpchan.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/modules/m_helpchan.cpp b/modules/m_helpchan.cpp new file mode 100644 index 000000000..e0163b925 --- /dev/null +++ b/modules/m_helpchan.cpp @@ -0,0 +1,45 @@ +/* + * (C) 2003-2013 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + */ + +#include "module.h" + +class HelpChannel : public Module +{ + Anope::string HelpChan; + + public: + HelpChannel(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, VENDOR) + { + + Implementation i[] = { I_OnChannelModeSet, I_OnReload }; + ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); + + OnReload(); + } + + EventReturn OnChannelModeSet(Channel *c, MessageSource &setter, const Anope::string &mname, const Anope::string ¶m) anope_override + { + if (mname == "OP" && c && c->ci && c->name.equals_ci(this->HelpChan)) + { + User *u = User::Find(param); + + if (u && c->ci->AccessFor(u).HasPriv("OPME")) + u->SetMode(OperServ, "HELPOP"); + } + + return EVENT_CONTINUE; + } + + void OnReload() anope_override + { + ConfigReader config; + + this->HelpChan = config.ReadValue("m_helpchan", "helpchannel", "", 0); + } +}; + +MODULE_INIT(HelpChannel) |