public:
CommandSVSSilence(InspIRCd* Instance) : Command(Instance,"SVSSILENCE", 0, 2)
{
- this->source = "m_watch.so";
+ this->source = "m_silence.so";
syntax = "<target> {[+|-]<mask> <p|c|i|n|t|a|x>}";
TRANSLATE3(TR_NICK, TR_TEXT, TR_END); /* we watch for a nick. not a UID. */
}
- CmdResult Handle (const char* const* parameters, int pcnt, User *user)
+ CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
/*
* XXX: thought occurs to me
if (IS_LOCAL(u))
{
- ServerInstance->Parser->CallHandler("SILENCE", ¶meters[1], 1, u);
+ ServerInstance->Parser->CallHandler("SILENCE", std::vector<std::string>(++parameters.begin(), parameters.end()), u);
}
return CMD_SUCCESS;
TRANSLATE3(TR_TEXT, TR_TEXT, TR_END);
}
- CmdResult Handle (const char* const* parameters, int pcnt, User *user)
+ CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
- if (!pcnt)
+ if (!parameters.size())
{
// no parameters, show the current silence list.
// Use Extensible::GetExt to fetch the silence list
return CMD_LOCALONLY;
}
- else if (pcnt > 0)
+ else if (parameters.size() > 0)
{
// one or more parameters, add or delete entry from the list (only the first parameter is used)
- std::string mask = parameters[0] + 1;
- char action = *parameters[0];
+ std::string mask = parameters[0].substr(1);
+ char action = parameters[0][0];
// Default is private and notice so clients do not break
int pattern = CompilePattern("pn");
// if pattern supplied, use it
- if (pcnt > 1) {
- pattern = CompilePattern(parameters[1]);
+ if (parameters.size() > 1) {
+ pattern = CompilePattern(parameters[1].c_str());
}
if (!mask.length())
int MatchPattern(User* dest, User* source, int pattern)
{
+ /* Server source */
+ if (!source || !dest)
+ return 1;
+
silencelist* sl;
dest->GetExt("silence_list", sl);
if (sl)