]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_restrictbanned.cpp
Remove unneeded headers from spanningtree. This was done to the rest of the source...
[user/henk/code/inspircd.git] / src / modules / m_restrictbanned.cpp
index c8c5451ed0f817a367a7bd38fc8efbfd5662f1ce..a5ab337ad30f1c1b4ca9be0bc5af690acf2f32b2 100644 (file)
  * ---------------------------------------------------
  */
 
-#include "users.h"
-#include "channels.h"
-#include "modules.h"
-
 #include "inspircd.h"
 
 /* $ModDesc: Restricts banned users in a channel. May not speak, etc. */
@@ -23,7 +19,7 @@ class ModuleRestrictBanned : public Module
 {
  private:
  public:
-       ModuleRestrictBanned(InspIRCd* Me) : Module::Module(Me)
+       ModuleRestrictBanned(InspIRCd* Me) : Module(Me)
        {
        }
        
@@ -47,7 +43,7 @@ class ModuleRestrictBanned : public Module
                if (!IS_LOCAL(user))
                        return 0;
 
-               if (channel->IsBanned(user) && channel->GetStatus(user) < STATUS_VOICE)
+               if (channel->GetStatus(user) < STATUS_VOICE && channel->IsBanned(user))
                {
                        /* banned, boned. drop the message. */
                        user->WriteServ("NOTICE "+std::string(user->nick)+" :*** You may not " + action + ", as you are banned on channel " + channel->name);
@@ -63,6 +59,10 @@ class ModuleRestrictBanned : public Module
                if (!IS_LOCAL(user))
                        return 0;
 
+               /* Allow changes to UID */
+               if (isdigit(newnick[0]))
+                       return 0;
+
                /* bit of a special case. */
                for (UCListIter i = user->chans.begin(); i != user->chans.end(); i++)
                {
@@ -96,28 +96,4 @@ class ModuleRestrictBanned : public Module
        }
 };
 
-
-class ModuleRestrictBannedFactory : public ModuleFactory
-{
- public:
-       ModuleRestrictBannedFactory()
-       {
-       }
-       
-       ~ModuleRestrictBannedFactory()
-       {
-       }
-       
-       virtual Module * CreateModule(InspIRCd* Me)
-       {
-               return new ModuleRestrictBanned(Me);
-       }
-       
-};
-
-
-extern "C" void * init_module( void )
-{
-       return new ModuleRestrictBannedFactory;
-}
-
+MODULE_INIT(ModuleRestrictBanned)