#include "users.h"
#include "modules.h"
#include "inspstring.h"
-#include "helperfuncs.h"
+
#include "commands.h"
#include "mode.h"
/* +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)
{
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;
}
}
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;
}
}
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
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,
if (parameter_counter < pcnt)
{
parameter = parameters[parameter_counter++];
+
+ /* Yerk, invalid! */
+ if ((parameter.rfind(':') || (parameter.rfind(' '))))
+ parameter = "";
}
else
{
{
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()));
}
if (!user)
return;
- ServerInstance->ModeGrok->Process(parameters, pcnt, user, false);
+ ServerInstance->Modes->Process(parameters, pcnt, user, false);
return;
}
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;
}
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;
}
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;
}
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;
}