X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmodules%2Fm_blockcaps.cpp;h=8b0c73ce3707f243524d9d45ba25da2969ab746e;hb=f25c4b7a2263f5f3ce9bb41ba56b43c0d3a6d124;hp=3322458447b08ed7643ab01e1883bd19cd91db80;hpb=8de87c2a9b5f5e68caac1ca06b1021ed69cb3d6a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_blockcaps.cpp b/src/modules/m_blockcaps.cpp index 332245844..8b0c73ce3 100644 --- a/src/modules/m_blockcaps.cpp +++ b/src/modules/m_blockcaps.cpp @@ -2,8 +2,8 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits + * InspIRCd: (C) 2002-2009 InspIRCd Development Team + * See: http://wiki.inspircd.org/Credits * * This program is free but copyrighted software; see * the file COPYING for details. @@ -26,21 +26,17 @@ class BlockCaps : public SimpleChannelModeHandler class ModuleBlockCAPS : public Module { - BlockCaps* bc; + BlockCaps bc; int percent; unsigned int minlen; char capsmap[256]; public: - ModuleBlockCAPS(InspIRCd* Me) : Module(Me) + ModuleBlockCAPS(InspIRCd* Me) : Module(Me), bc(Me) { - OnRehash(NULL,""); - bc = new BlockCaps(ServerInstance); - if (!ServerInstance->Modes->AddMode(bc)) - { - delete bc; + OnRehash(NULL); + if (!ServerInstance->Modes->AddMode(&bc)) throw ModuleException("Could not add new modes!"); - } Implementation eventlist[] = { I_OnUserPreMessage, I_OnUserPreNotice, I_OnRehash, I_On005Numeric }; ServerInstance->Modules->Attach(eventlist, this, 4); } @@ -50,7 +46,7 @@ public: ServerInstance->AddExtBanChar('B'); } - virtual void OnRehash(User* user, const std::string ¶m) + virtual void OnRehash(User* user) { ReadConf(); } @@ -69,7 +65,7 @@ public: return 0; } - if (c->IsModeSet('B') || c->IsExtBanned(user, 'B')) + if (c->IsModeSet('B') || c->GetExtBanStatus(user, 'B') < 0) { int caps = 0; const char* actstr = "\1ACTION "; @@ -90,7 +86,7 @@ public: } if ( ((caps*100)/(int)text.length()) >= percent ) { - user->WriteNumeric(ERR_CANNOTSENDTOCHAN, "%s %s :Your line cannot be more than %d%% capital letters if it is %d or more letters long", user->nick.c_str(), c->name.c_str(), percent, minlen); + user->WriteNumeric(ERR_CANNOTSENDTOCHAN, "%s %s :Your message cannot contain more than %d%% capital letters if it's longer than %d characters", user->nick.c_str(), c->name.c_str(), percent, minlen); return 1; } } @@ -128,8 +124,7 @@ public: virtual ~ModuleBlockCAPS() { - ServerInstance->Modes->DelMode(bc); - delete bc; + ServerInstance->Modes->DelMode(&bc); } virtual Version GetVersion()