]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_chanprotect.cpp
Include explicit routing information in Command, will replace CMD_LOCALONLY return...
[user/henk/code/inspircd.git] / src / modules / m_chanprotect.cpp
index 627857175962ca6d2f40a51520d2c230222adb22..e24e64a3e90451756dce75f8447c46b7944580ff 100644 (file)
@@ -3,7 +3,7 @@
  *       +------------------------------------+
  *
  *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
- * See: http://www.inspircd.org/wiki/index.php/Credits
+ * See: http://wiki.inspircd.org/Credits
  *
  * This program is free but copyrighted software; see
  *            the file COPYING for details.
@@ -88,11 +88,9 @@ class FounderProtectBase
 
                while (modestack.GetStackedLine(stackresult))
                {
-                       for (size_t j = 0; j < stackresult.size(); j++)
-                       {
-                               mode_junk.push_back(stackresult[j]);
-                       }
+                       mode_junk.insert(mode_junk.end(), stackresult.begin(), stackresult.end());
                        MyInstance->SendMode(mode_junk, MyInstance->FakeClient);
+                       mode_junk.erase(mode_junk.begin() + 1, mode_junk.end());
                }
        }
 
@@ -340,8 +338,8 @@ class ModuleChanProtect : public Module
                        throw ModuleException("Could not add new modes!");
                }
 
-               Implementation eventlist[] = { I_OnUserKick, I_OnUserPart, I_OnUserPreJoin, I_OnPostJoin, I_OnAccessCheck };
-               ServerInstance->Modules->Attach(eventlist, this, 5);
+               Implementation eventlist[] = { I_OnUserKick, I_OnUserPart, I_OnUserPreJoin, I_OnAccessCheck };
+               ServerInstance->Modules->Attach(eventlist, this, 4);
        }
 
        virtual void OnUserKick(User* source, User* user, Channel* chan, const std::string &reason, bool &silent)
@@ -394,20 +392,6 @@ class ModuleChanProtect : public Module
                return 0;
        }
 
-       virtual void OnPostJoin(User *user, Channel *channel)
-       {
-               // This *must* be in PostJoin, not UserJoin - the former will make it appear to happen
-               // before the client is in the channel
-
-               // This notice was here originally because it was all done prior to the creation of
-               // privs in OnUserPreJoin. I've left it because it might still be wanted, but i'm
-               // not sure it really should be here - ops don't get shown, obviously, and the prefix
-               // will appear in the names list for the user.. remove if desired -Special
-
-               if (FirstInGetsFounder && channel->GetUserCounter() == 1)
-                       user->WriteServ("MODE %s +q %s", channel->name.c_str(), user->nick.c_str());
-       }
-
        virtual int OnAccessCheck(User* source,User* dest,Channel* channel,int access_type)
        {
                // here we perform access checks, this is the important bit that actually stops kicking/deopping