#include "inspircd.h"
-
-
-/** Handles the +B channel mode
- */
-class BlockCaps : public SimpleChannelModeHandler
-{
- public:
- BlockCaps(Module* Creator) : SimpleChannelModeHandler(Creator, "blockcaps", 'B') { }
-};
+#include "modules/exemption.h"
class ModuleBlockCAPS : public Module
{
- BlockCaps bc;
+ CheckExemption::EventProvider exemptionprov;
+ SimpleChannelModeHandler bc;
unsigned int percent;
unsigned int minlen;
char capsmap[256];
public:
- ModuleBlockCAPS() : bc(this)
+ ModuleBlockCAPS()
+ : exemptionprov(this)
+ , bc(this, "blockcaps", 'B')
{
}
{
if (target_type == TYPE_CHANNEL)
{
- if ((!IS_LOCAL(user)) || (text.length() < minlen))
+ if ((!IS_LOCAL(user)) || (text.length() < minlen) || (text == "\1ACTION\1") || (text == "\1ACTION"))
return MOD_RES_PASSTHRU;
Channel* c = (Channel*)dest;
- ModResult res = ServerInstance->OnCheckExemption(user,c,"blockcaps");
+ ModResult res = CheckExemption::Call(exemptionprov, user, c, "blockcaps");
if (res == MOD_RES_ALLOW)
return MOD_RES_PASSTHRU;