#include "inspircd.h"
#include "modules/exemption.h"
-/** Handles channel mode +S
- */
-class ChannelStripColor : public SimpleChannelModeHandler
-{
- public:
- ChannelStripColor(Module* Creator) : SimpleChannelModeHandler(Creator, "stripcolor", 'S') { }
-};
-
-/** Handles user mode +S
- */
-class UserStripColor : public SimpleUserModeHandler
-{
- public:
- UserStripColor(Module* Creator) : SimpleUserModeHandler(Creator, "u_stripcolor", 'S') { }
-};
-
-
class ModuleStripColor : public Module
{
CheckExemption::EventProvider exemptionprov;
- ChannelStripColor csc;
- UserStripColor usc;
+ SimpleChannelModeHandler csc;
+ SimpleUserModeHandler usc;
public:
ModuleStripColor()
: exemptionprov(this)
- , csc(this)
- , usc(this)
+ , csc(this, "stripcolor", 'S')
+ , usc(this, "u_stripcolor", 'S')
{
}
else if (target_type == TYPE_CHANNEL)
{
Channel* t = (Channel*)dest;
- ModResult res;
- FIRST_MOD_RESULT_CUSTOM(exemptionprov, CheckExemption::EventListener, OnCheckExemption, res, (user, t, "stripcolor"));
+ ModResult res = CheckExemption::Call(exemptionprov, user, t, "stripcolor");
if (res == MOD_RES_ALLOW)
return MOD_RES_PASSTHRU;
if (channel->GetExtBanStatus(user, 'S').check(!user->IsModeSet(csc)))
{
- ModResult res;
- FIRST_MOD_RESULT_CUSTOM(exemptionprov, CheckExemption::EventListener, OnCheckExemption, res, (user, channel, "stripcolor"));
+ ModResult res = CheckExemption::Call(exemptionprov, user, channel, "stripcolor");
if (res != MOD_RES_ALLOW)
InspIRCd::StripColor(partmessage);