]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_messageflood.cpp
Introduce ModeProcessFlags, can be passed to ModeParser::Process() to indicate local...
[user/henk/code/inspircd.git] / src / modules / m_messageflood.cpp
index a367ecda37c974b03add9431675badf89be0e954..86296094b3151af2c81828a5b32c4bbaa6018747 100644 (file)
@@ -128,12 +128,11 @@ class ModuleMsgFlood : public Module
        {
        }
 
-       void init()
+       void init() CXX11_OVERRIDE
        {
                ServerInstance->Modules->AddService(mf);
                ServerInstance->Modules->AddService(mf.ext);
-               Implementation eventlist[] = { I_OnUserPreNotice, I_OnUserPreMessage };
-               ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
+               ServerInstance->Modules->Attach(I_OnUserPreMessage, this);
        }
 
        ModResult ProcessMessages(User* user,Channel* dest, const std::string &text)
@@ -156,8 +155,8 @@ class ModuleMsgFlood : public Module
                                        std::vector<std::string> parameters;
                                        parameters.push_back(dest->name);
                                        parameters.push_back("+b");
-                                       parameters.push_back(user->MakeWildHost());
-                                       ServerInstance->SendGlobalMode(parameters, ServerInstance->FakeClient);
+                                       parameters.push_back("*!*@" + user->dhost);
+                                       ServerInstance->Modes->Process(parameters, ServerInstance->FakeClient);
                                }
 
                                const std::string kickMessage = "Channel flood triggered (limit is " + ConvToStr(f->lines) +
@@ -172,15 +171,7 @@ class ModuleMsgFlood : public Module
                return MOD_RES_PASSTHRU;
        }
 
-       ModResult OnUserPreMessage(User *user, void *dest, int target_type, std::string &text, char status, CUList &exempt_list)
-       {
-               if (target_type == TYPE_CHANNEL)
-                       return ProcessMessages(user,(Channel*)dest,text);
-
-               return MOD_RES_PASSTHRU;
-       }
-
-       ModResult OnUserPreNotice(User *user, void *dest, int target_type, std::string &text, char status, CUList &exempt_list)
+       ModResult OnUserPreMessage(User* user, void* dest, int target_type, std::string& text, char status, CUList& exempt_list, MessageType msgtype) CXX11_OVERRIDE
        {
                if (target_type == TYPE_CHANNEL)
                        return ProcessMessages(user,(Channel*)dest,text);
@@ -192,10 +183,9 @@ class ModuleMsgFlood : public Module
        {
                // we want to be after all modules that might deny the message (e.g. m_muteban, m_noctcp, m_blockcolor, etc.)
                ServerInstance->Modules->SetPriority(this, I_OnUserPreMessage, PRIORITY_LAST);
-               ServerInstance->Modules->SetPriority(this, I_OnUserPreNotice, PRIORITY_LAST);
        }
 
-       Version GetVersion()
+       Version GetVersion() CXX11_OVERRIDE
        {
                return Version("Provides channel mode +f (message flood protection)", VF_VENDOR);
        }