]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_nickflood.cpp
Automatically register ServiceProviders created by modules
[user/henk/code/inspircd.git] / src / modules / m_nickflood.cpp
index f8593c26fa51d2957789e2b4c3bcfb45c2cca8b6..6526e6960f04caed31200005f6c856ca5cfc8354 100644 (file)
@@ -20,8 +20,6 @@
 
 #include "inspircd.h"
 
-/* $ModDesc: Provides channel mode +F (nick flood protection) */
-
 /** Holds settings and state associated with channel mode +F
  */
 class nickfloodsettings
@@ -115,16 +113,14 @@ class NickFlood : public ModeHandler
 
                        ext.set(channel, new nickfloodsettings(nsecs, nnicks));
                        parameter = ConvToStr(nnicks) + ":" + ConvToStr(nsecs);
-                       channel->SetModeParam('F', parameter);
                        return MODEACTION_ALLOW;
                }
                else
                {
-                       if (!channel->IsModeSet('F'))
+                       if (!channel->IsModeSet(this))
                                return MODEACTION_DENY;
 
                        ext.unset(channel);
-                       channel->SetModeParam('F', "");
                        return MODEACTION_ALLOW;
                }
        }
@@ -140,19 +136,8 @@ class ModuleNickFlood : public Module
        {
        }
 
-       void init()
+       ModResult OnUserPreNick(User* user, const std::string &newnick) CXX11_OVERRIDE
        {
-               ServerInstance->Modules->AddService(nf);
-               ServerInstance->Modules->AddService(nf.ext);
-               Implementation eventlist[] = { I_OnUserPreNick, I_OnUserPostNick };
-               ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
-       }
-
-       ModResult OnUserPreNick(User* user, const std::string &newnick)
-       {
-               if (ServerInstance->NICKForced.get(user)) /* Allow forced nick changes */
-                       return MOD_RES_PASSTHRU;
-
                for (UCListIter i = user->chans.begin(); i != user->chans.end(); i++)
                {
                        Channel *channel = *i;
@@ -187,7 +172,7 @@ class ModuleNickFlood : public Module
        /*
         * XXX: HACK: We do the increment on the *POST* event here (instead of all together) because we have no way of knowing whether other modules would block a nickchange.
         */
-       void OnUserPostNick(User* user, const std::string &oldnick)
+       void OnUserPostNick(User* user, const std::string &oldnick) CXX11_OVERRIDE
        {
                if (isdigit(user->nick[0])) /* allow switches to UID */
                        return;
@@ -213,7 +198,7 @@ class ModuleNickFlood : public Module
                }
        }
 
-       Version GetVersion()
+       Version GetVersion() CXX11_OVERRIDE
        {
                return Version("Channel mode F - nick flood protection", VF_VENDOR);
        }