]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_chanprotect.cpp
More converted modules
[user/henk/code/inspircd.git] / src / modules / m_chanprotect.cpp
index 8e23190376ebaa95d10210a0cda5ce250b7aaf14..b7d67d9ae26edaa38a9226d8eb6fb6b3f90b3945 100644 (file)
@@ -61,38 +61,24 @@ class ModuleChanProtect : public Module
        
         virtual void On005Numeric(std::string &output)
         {
-                std::stringstream line(output);
-                std::string temp1, temp2;
-                while (!line.eof())
-                {
-                        line >> temp1;
-                        if (temp1.substr(0,10) == "CHANMODES=")
-                        {
-                                // append the chanmode to the end
-                                temp1 = temp1.substr(10,temp1.length());
-                                temp1 = "CHANMODES=qa" + temp1;
-                        }
-                        temp2 = temp2 + temp1 + " ";
-                }
-               if (temp2.length())
-                       output = temp2.substr(0,temp2.length()-1);
+               InsertMode(output,"qa",1);
         }
 
-       virtual void OnUserKick(userrec* source, userrec* user, chanrec* chan, std::string reason)
+       virtual void OnUserKick(userrec* source, userrec* user, chanrec* chan, const std::string &reason)
        {
                // FIX: when someone gets kicked from a channel we must remove their Extensibles!
                user->Shrink("cm_founder_"+std::string(chan->name));
                user->Shrink("cm_protect_"+std::string(chan->name));
        }
 
-       virtual void OnUserPart(userrec* user, chanrec* channel, std::string partreason)
+       virtual void OnUserPart(userrec* user, chanrec* channel, const std::string &partreason)
        {
                // FIX: when someone parts a channel we must remove their Extensibles!
                user->Shrink("cm_founder_"+std::string(channel->name));
                user->Shrink("cm_protect_"+std::string(channel->name));
        }
 
-       virtual void OnRehash(std::string parameter)
+       virtual void OnRehash(const std::string &parameter)
        {
                // on a rehash we delete our classes for good measure and create them again.
                delete Conf;
@@ -223,7 +209,7 @@ class ModuleChanProtect : public Module
                                return -1;
                        
                        // given user isnt even on the channel, eat the mode change
-                       if (!Srv->IsOnChannel(theuser,chan))
+                       if (!chan->HasUser(theuser))
                                return -1;
                        
                        // source is a server, or ulined, we'll let them +-q the user.
@@ -266,7 +252,7 @@ class ModuleChanProtect : public Module
                                return -1;
                        
                        // given user isnt even on the channel, eat the mode change
-                       if (!Srv->IsOnChannel(theuser,chan))
+                       if (!chan->HasUser(theuser))
                                return -1;
 
                        // source has +q, is a server, or ulined, we'll let them +-a the user.