]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
More tweaks
[user/henk/code/inspircd.git] / src / mode.cpp
index 0d86a5c4cd33aedf08623c216a6c5372ebd0159c..f3cf54e6a4820eb805c8e10cc4999b835436fbb4 100644 (file)
@@ -25,7 +25,7 @@ using namespace std;
 #include "users.h"
 #include "modules.h"
 #include "inspstring.h"
-#include "helperfuncs.h"
+
 #include "commands.h"
 #include "mode.h"
 
@@ -65,10 +65,6 @@ using namespace std;
 /* +n (notice mask - our implementation of snomasks) */
 #include "modes/umode_n.h"
 
-extern time_t TIME;
-
-extern InspIRCd* ServerInstance;
-
 ModeHandler::ModeHandler(InspIRCd* Instance, char modeletter, int parameters_on, int parameters_off, bool listmode, ModeType type, bool operonly)
        : ServerInstance(Instance), mode(modeletter), n_params_on(parameters_on), n_params_off(parameters_off), list(listmode), m_type(type), oper(operonly)
 {
@@ -199,7 +195,7 @@ const char* ModeParser::Grant(userrec *d,chanrec *chan,int MASK)
                                        n->channel->AddVoicedUser(d);
                                break;
                        }
-                       log(DEBUG,"grant: %s %s",n->channel->name,d->nick);
+                       ServerInstance->Log(DEBUG,"grant: %s %s",n->channel->name,d->nick);
                        return d->nick;
                }
        }
@@ -233,7 +229,7 @@ const char* ModeParser::Revoke(userrec *d,chanrec *chan,int MASK)
                                        n->channel->DelVoicedUser(d);
                                break;
                        }
-                       log(DEBUG,"revoke: %s %s",n->channel->name,d->nick);
+                       ServerInstance->Log(DEBUG,"revoke: %s %s",n->channel->name,d->nick);
                        return d->nick;
                }
        }
@@ -270,7 +266,7 @@ void ModeParser::Process(const char** parameters, int pcnt, userrec *user, bool
        chanrec* targetchannel = ServerInstance->FindChan(parameters[0]);
        userrec* targetuser  = ServerInstance->FindNick(parameters[0]);
 
-       log(DEBUG,"ModeParser::Process start");
+       ServerInstance->Log(DEBUG,"ModeParser::Process start");
 
        /* Special case for displaying the list for listmodes,
         * e.g. MODE #chan b, or MODE #chan +b without a parameter
@@ -307,10 +303,10 @@ void ModeParser::Process(const char** parameters, int pcnt, userrec *user, bool
                        if ((IS_LOCAL(user)) && (targetchannel->GetStatus(user) < STATUS_HOP))
                        {
                                /* We don't have halfop */
-                               log(DEBUG,"The user is not a halfop or above, checking other reasons for being able to set the modes");
+                               ServerInstance->Log(DEBUG,"The user is not a halfop or above, checking other reasons for being able to set the modes");
 
                                /* Are we a uline or is it a servermode? */
-                               if ((!is_uline(user->server)) && (!servermode))
+                               if ((!ServerInstance->ULine(user->server)) && (!servermode))
                                {
                                        /* Not enough permission:
                                         * NOT a uline and NOT a servermode,
@@ -399,6 +395,10 @@ void ModeParser::Process(const char** parameters, int pcnt, userrec *user, bool
                                                                if (parameter_counter < pcnt)
                                                                {
                                                                        parameter = parameters[parameter_counter++];
+
+                                                                       /* Yerk, invalid! */
+                                                                       if ((parameter.rfind(':') || (parameter.rfind(' '))))
+                                                                               parameter = "";
                                                                }
                                                                else
                                                                {
@@ -473,7 +473,7 @@ void ModeParser::Process(const char** parameters, int pcnt, userrec *user, bool
                        {
                                if (type == MODETYPE_CHANNEL)
                                {
-                                       log(DEBUG,"Write output sequence and parameters to channel: %s %s%s",targetchannel->name,output_sequence.c_str(),parameter_list.str().c_str());
+                                       ServerInstance->Log(DEBUG,"Write output sequence and parameters to channel: %s %s%s",targetchannel->name,output_sequence.c_str(),parameter_list.str().c_str());
                                        targetchannel->WriteChannel(user,"MODE %s %s%s",targetchannel->name,output_sequence.c_str(),parameter_list.str().c_str());
                                        FOREACH_MOD(I_OnMode,OnMode(user, targetchannel, TYPE_CHANNEL, output_sequence + parameter_list.str()));
                                }
@@ -493,7 +493,7 @@ void cmd_mode::Handle (const char** parameters, int pcnt, userrec *user)
        if (!user)
                return;
 
-       ServerInstance->ModeGrok->Process(parameters, pcnt, user, false);
+       ServerInstance->Modes->Process(parameters, pcnt, user, false);
 
        return;
 }
@@ -550,7 +550,7 @@ bool ModeParser::AddMode(ModeHandler* mh, unsigned const char modeletter)
                return false;
 
        modehandlers[pos] = mh;
-       log(DEBUG,"ModeParser::AddMode: added mode %c",mh->GetModeChar());
+       ServerInstance->Log(DEBUG,"ModeParser::AddMode: added mode %c",mh->GetModeChar());
        return true;
 }
 
@@ -631,7 +631,7 @@ bool ModeParser::AddModeWatcher(ModeWatcher* mw)
        pos = (mw->GetModeChar()-65) | mask;
 
        modewatchers[pos].push_back(mw);
-       log(DEBUG,"ModeParser::AddModeWatcher: watching mode %c",mw->GetModeChar());
+       ServerInstance->Log(DEBUG,"ModeParser::AddModeWatcher: watching mode %c",mw->GetModeChar());
 
        return true;
 }
@@ -656,7 +656,7 @@ bool ModeParser::DelModeWatcher(ModeWatcher* mw)
                return false;
 
        modewatchers[pos].erase(a);
-       log(DEBUG,"ModeParser::DelModeWatcher: stopped watching mode %c",mw->GetModeChar());
+       ServerInstance->Log(DEBUG,"ModeParser::DelModeWatcher: stopped watching mode %c",mw->GetModeChar());
 
        return true;
 }
@@ -702,7 +702,7 @@ bool ModeParser::InsertMode(std::string &output, const char* mode, unsigned shor
 
        if(section > 4 || section == 0)
        {
-               log(DEBUG, "InsertMode: CHANMODES doesn't have a section %dh :/", section);
+               ServerInstance->Log(DEBUG, "InsertMode: CHANMODES doesn't have a section %dh :/", section);
                return false;
        }