From 81027f3a0888ac4c8e3fb6ea90081492defce946 Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Mon, 20 Mar 2017 11:43:24 +0000 Subject: Move the OnCheckExemption hook out of the core. --- src/modules/m_exemptchanops.cpp | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'src/modules/m_exemptchanops.cpp') diff --git a/src/modules/m_exemptchanops.cpp b/src/modules/m_exemptchanops.cpp index 2884385fb..0c67037f0 100644 --- a/src/modules/m_exemptchanops.cpp +++ b/src/modules/m_exemptchanops.cpp @@ -19,6 +19,7 @@ #include "inspircd.h" #include "listmode.h" +#include "modules/exemption.h" /** Handles channel mode +X */ @@ -68,11 +69,15 @@ class ExemptChanOps : public ListModeBase } }; -class ExemptHandler : public HandlerBase3 +class ExemptHandler : public CheckExemption::EventListener { public: ExemptChanOps ec; - ExemptHandler(Module* me) : ec(me) {} + ExemptHandler(Module* me) + : CheckExemption::EventListener(me) + , ec(me) + { + } PrefixMode* FindMode(const std::string& mid) { @@ -83,7 +88,7 @@ class ExemptHandler : public HandlerBase3IsPrefixMode() : NULL; } - ModResult Call(User* user, Channel* chan, const std::string& restriction) + ModResult OnCheckExemption(User* user, Channel* chan, const std::string& restriction) CXX11_OVERRIDE { unsigned int mypfx = chan->GetPrefixValue(user); std::string minmode; @@ -108,7 +113,7 @@ class ExemptHandler : public HandlerBase3HandleOnCheckExemption.Call(user, chan, restriction); + return MOD_RES_PASSTHRU; } }; @@ -121,16 +126,6 @@ class ModuleExemptChanOps : public Module { } - void init() CXX11_OVERRIDE - { - ServerInstance->OnCheckExemption = &eh; - } - - ~ModuleExemptChanOps() - { - ServerInstance->OnCheckExemption = &ServerInstance->HandleOnCheckExemption; - } - Version GetVersion() CXX11_OVERRIDE { return Version("Provides the ability to allow channel operators to be exempt from certain modes.",VF_VENDOR); -- cgit v1.3.1-10-gc9f91