Conversions

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9628 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
aquanight 2008-05-05 02:06:59 +00:00
parent dfaa7b4e52
commit b817341e21
22 changed files with 98 additions and 97 deletions

View File

@ -131,10 +131,10 @@ class CommandRLine : public Command
this->source = "m_rline.so";
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
if (pcnt >= 3)
if (parameters.size() >= 3)
{
// Adding - XXX todo make this respect <insane> tag perhaps..
@ -143,7 +143,7 @@ class CommandRLine : public Command
try
{
r = new RLine(ServerInstance, ServerInstance->Time(), duration, user->nick, parameters[2], parameters[0]);
r = new RLine(ServerInstance, ServerInstance->Time(), duration, user->nick, parameters[2].c_str(), parameters[0].c_str());
}
catch (...)
{
@ -156,12 +156,12 @@ class CommandRLine : public Command
{
if (!duration)
{
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent R-Line for %s.", user->nick, parameters[0]);
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent R-Line for %s.", user->nick, parameters[0].c_str());
}
else
{
time_t c_requires_crap = duration + ServerInstance->Time();
ServerInstance->SNO->WriteToSnoMask('x', "%s added timed R-Line for %s, expires on %s", user->nick, parameters[0],
ServerInstance->SNO->WriteToSnoMask('x', "%s added timed R-Line for %s, expires on %s", user->nick, parameters[0].c_str(),
ServerInstance->TimeString(c_requires_crap).c_str());
}
@ -170,20 +170,20 @@ class CommandRLine : public Command
else
{
delete r;
user->WriteServ("NOTICE %s :*** R-Line for %s already exists", user->nick, parameters[0]);
user->WriteServ("NOTICE %s :*** R-Line for %s already exists", user->nick, parameters[0].c_str());
}
}
}
else
{
if (ServerInstance->XLines->DelLine(parameters[0], "R", user))
if (ServerInstance->XLines->DelLine(parameters[0].c_str(), "R", user))
{
ServerInstance->SNO->WriteToSnoMask('x',"%s Removed R-Line on %s.",user->nick,parameters[0]);
ServerInstance->SNO->WriteToSnoMask('x',"%s Removed R-Line on %s.",user->nick,parameters[0].c_str());
}
else
{
// XXX todo implement stats
user->WriteServ("NOTICE %s :*** R-Line %s not found in list, try /stats g.",user->nick,parameters[0]);
user->WriteServ("NOTICE %s :*** R-Line %s not found in list, try /stats g.",user->nick,parameters[0].c_str());
}
}

View File

@ -232,11 +232,11 @@ class ModuleMsgFlood : public Module
f->clear(user);
if (f->ban)
{
const char* parameters[3];
parameters[0] = dest->name;
parameters[1] = "+b";
parameters[2] = user->MakeWildHost();
ServerInstance->SendMode(parameters, 3, ServerInstance->FakeClient);
std::vector<std::string> parameters(3);
parameters.push_back(dest->name);
parameters.push_back("+b");
parameters.push_back(user->MakeWildHost());
ServerInstance->SendMode(parameters, ServerInstance->FakeClient);
ServerInstance->PI->SendModeStr(dest->name, std::string("+b ") + user->MakeWildHost());
}

View File

@ -28,7 +28,7 @@ class CommandNicklock : public Command
TRANSLATE3(TR_NICK, TR_TEXT, TR_END);
}
CmdResult Handle(const std::vector<const std::string>& parameters, User *user)
CmdResult Handle(const std::vector<std::string>& parameters, User *user)
{
User* target = ServerInstance->FindNick(parameters[0]);
irc::string server;
@ -48,7 +48,7 @@ class CommandNicklock : public Command
}
// check nick is valid
if (!ServerInstance->IsNick(parameters[1]))
if (!ServerInstance->IsNick(parameters[1].c_str()))
{
return CMD_FAILURE;
}
@ -56,7 +56,7 @@ class CommandNicklock : public Command
// let others know
ServerInstance->SNO->WriteToSnoMask('A', std::string(user->nick)+" used NICKLOCK to change and hold "+parameters[0]+" to "+parameters[1]);
if (!target->ForceNickChange(parameters[1]))
if (!target->ForceNickChange(parameters[1].c_str()))
{
// ugh, nickchange failed for some reason -- possibly existing nick? XXX change to UID here
ServerInstance->Users->QuitUser(target, "Nickname collision");
@ -81,7 +81,7 @@ class CommandNickunlock : public Command
syntax = "<locked-nick>";
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
User* target = ServerInstance->FindNick(parameters[0]);
if (target)

View File

@ -100,7 +100,8 @@ class ModuleModesOnOper : public Module
tokens.push_back(buf);
int size = tokens.size() + 1;
const char** modes = new const char*[size];
std::vector<std::string> modes(size);
modes.resize(size);
modes[0] = u->nick;
// process mode params
@ -116,8 +117,7 @@ class ModuleModesOnOper : public Module
n.push_back(modes[j]);
ServerInstance->PI->SendMode(u->uuid, n);
ServerInstance->SendMode(modes, size, u);
delete [] modes;
ServerInstance->SendMode(modes, u);
}
};

View File

@ -49,7 +49,7 @@ class CommandOpermotd : public Command
syntax = "[<servername>]";
}
CmdResult Handle (const std::vector<const std::string>& parameters, User* user)
CmdResult Handle (const std::vector<std::string>& parameters, User* user)
{
return ShowOperMOTD(user);
}

View File

@ -52,9 +52,9 @@ class CommandMkpasswd : public Command
}
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
MakeHash(user, parameters[0], parameters[1]);
MakeHash(user, parameters[0].c_str(), parameters[1].c_str());
/* NOTE: Don't propagate this across the network!
* We dont want plaintext passes going all over the place...
* To make sure it goes nowhere, return CMD_FAILURE!

View File

@ -31,7 +31,7 @@ class CommandRandquote : public Command
this->source = "m_randquote.so";
}
CmdResult Handle (const char* const* parameters, int pcntl, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
std::string str;
int fsize;
@ -107,7 +107,7 @@ class ModuleRandQuote : public Module
virtual void OnUserConnect(User* user)
{
if (mycommand)
mycommand->Handle(NULL, 0, user);
mycommand->Handle(std::vector<std::string>(), user);
}
};

View File

@ -69,7 +69,7 @@ class RemoveBase
}
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user, bool neworder)
CmdResult Handle (const std::vector<std::string>& parameters, User *user, bool neworder)
{
const char* channame;
const char* username;
@ -87,8 +87,8 @@ class RemoveBase
* /remove <nick> <channel> [reason ...]
* /fpart <channel> <nick> [reason ...]
*/
channame = parameters[ neworder ? 0 : 1];
username = parameters[ neworder ? 1 : 0];
channame = parameters[ neworder ? 0 : 1].c_str();
username = parameters[ neworder ? 1 : 0].c_str();
/* Look up the user we're meant to be removing from the channel */
target = ServerInstance->FindNick(username);
@ -167,10 +167,10 @@ class RemoveBase
std::string reasonparam("No reason given");
/* If a reason is given, use it */
if(pcnt > 2)
if(parameters.size() > 2)
{
/* Join params 2 ... pcnt - 1 (inclusive) into one */
irc::stringjoiner reason_join(" ", parameters, 2, pcnt - 1);
irc::stringjoiner reason_join(" ", parameters, 2, parameters.size() - 1);
reasonparam = reason_join.GetJoined();
}
@ -213,9 +213,9 @@ class CommandRemove : public Command, public RemoveBase
TRANSLATE4(TR_NICK, 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)
{
return RemoveBase::Handle(parameters, pcnt, user, false);
return RemoveBase::Handle(parameters, user, false);
}
};
@ -230,9 +230,9 @@ class CommandFpart : public Command, public RemoveBase
syntax = "<channel> <nick> [<reason>]";
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
return RemoveBase::Handle(parameters, pcnt, user, true);
return RemoveBase::Handle(parameters, user, true);
}
};

View File

@ -27,7 +27,7 @@ class CommandSajoin : public Command
TRANSLATE3(TR_NICK, TR_TEXT, TR_END);
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
User* dest = ServerInstance->FindNick(parameters[0]);
if (dest)
@ -37,7 +37,7 @@ class CommandSajoin : public Command
user->WriteNumeric(990, "%s :Cannot use an SA command on a u-lined client",user->nick);
return CMD_FAILURE;
}
if (!ServerInstance->IsChannel(parameters[1]))
if (!ServerInstance->IsChannel(parameters[1].c_str()))
{
/* we didn't need to check this for each character ;) */
user->WriteServ("NOTICE "+std::string(user->nick)+" :*** Invalid characters in channel name");
@ -50,7 +50,7 @@ class CommandSajoin : public Command
*/
if (IS_LOCAL(dest))
{
Channel::JoinUser(ServerInstance, dest, parameters[1], true, "", false, ServerInstance->Time());
Channel::JoinUser(ServerInstance, dest, parameters[1].c_str(), true, "", false, ServerInstance->Time());
/* Fix for dotslasher and w00t - if the join didnt succeed, return CMD_FAILURE so that it doesnt propagate */
Channel* n = ServerInstance->FindChan(parameters[1]);
if (n)

View File

@ -26,12 +26,12 @@ class CommandSamode : public Command
syntax = "<target> <modes> {<mode-parameters>}";
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
/*
* Handles an SAMODE request. Notifies all +s users.
*/
ServerInstance->SendMode(parameters, pcnt, ServerInstance->FakeClient);
ServerInstance->SendMode(parameters, ServerInstance->FakeClient);
if (ServerInstance->Modes->GetLastParse().length())
{

View File

@ -27,7 +27,7 @@ class CommandSanick : public Command
TRANSLATE3(TR_NICK, TR_TEXT, TR_END);
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
User* target = ServerInstance->FindNick(parameters[0]);
if (target)
@ -38,9 +38,9 @@ class CommandSanick : public Command
return CMD_FAILURE;
}
std::string oldnick = user->nick;
if (ServerInstance->IsNick(parameters[1]))
if (ServerInstance->IsNick(parameters[1].c_str()))
{
if (target->ForceNickChange(parameters[1]))
if (target->ForceNickChange(parameters[1].c_str()))
{
ServerInstance->SNO->WriteToSnoMask('A', oldnick+" used SANICK to change "+std::string(parameters[0])+" to "+parameters[1]);
return CMD_SUCCESS;
@ -54,14 +54,14 @@ class CommandSanick : public Command
}
else
{
user->WriteServ("NOTICE %s :*** Invalid nickname '%s'", user->nick, parameters[1]);
user->WriteServ("NOTICE %s :*** Invalid nickname '%s'", user->nick, parameters[1].c_str());
}
return CMD_FAILURE;
}
else
{
user->WriteServ("NOTICE %s :*** No such nickname: '%s'", user->nick, parameters[0]);
user->WriteServ("NOTICE %s :*** No such nickname: '%s'", user->nick, parameters[0].c_str());
}
return CMD_FAILURE;

View File

@ -27,7 +27,7 @@ class CommandSapart : public Command
TRANSLATE4(TR_NICK, 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)
{
User* dest = ServerInstance->FindNick(parameters[0]);
Channel* channel = ServerInstance->FindChan(parameters[1]);
@ -35,8 +35,8 @@ class CommandSapart : public Command
if (dest && channel)
{
ServerInstance->Logs->Log("m_sapart",DEBUG, "SAPART: pcnt is %d", pcnt);
if (pcnt == 3)
ServerInstance->Logs->Log("m_sapart",DEBUG, "SAPART: pcnt is %d", parameters.size());
if (parameters.size() == 3)
reason = parameters[2];
else
reason = dest->nick;
@ -70,7 +70,7 @@ class CommandSapart : public Command
}
else
{
user->WriteServ("NOTICE %s :*** Unable to make %s part %s",user->nick, dest->nick, parameters[1]);
user->WriteServ("NOTICE %s :*** Unable to make %s part %s",user->nick, dest->nick, parameters[1].c_str());
return CMD_FAILURE;
}
}

View File

@ -27,7 +27,7 @@ class CommandSaquit : public Command
TRANSLATE3(TR_NICK, TR_TEXT, TR_END);
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
User* dest = ServerInstance->FindNick(parameters[0]);
if (dest)
@ -38,7 +38,7 @@ class CommandSaquit : public Command
return CMD_FAILURE;
}
irc::stringjoiner reason_join(" ", parameters, 1, pcnt - 1);
irc::stringjoiner reason_join(" ", parameters, 1, parameters.size() - 1);
std::string line = reason_join.GetJoined();
ServerInstance->SNO->WriteToSnoMask('A', std::string(user->nick)+" used SAQUIT to make "+std::string(dest->nick)+" quit with a reason of "+line);
@ -51,7 +51,7 @@ class CommandSaquit : public Command
}
else
{
user->WriteServ("NOTICE %s :*** Invalid nickname '%s'", user->nick, parameters[0]);
user->WriteServ("NOTICE %s :*** Invalid nickname '%s'", user->nick, parameters[0].c_str());
}
return CMD_FAILURE;

View File

@ -101,7 +101,7 @@ class SaslAuthenticator : public classbase
this->result = SASL_ABORT;
}
bool SendClientMessage(const char* const* parameters, int pcnt)
bool SendClientMessage(const std::vector<std::string>& parameters)
{
if (this->state != SASL_COMM)
return true;
@ -113,12 +113,11 @@ class SaslAuthenticator : public classbase
params.push_back(this->agent);
params.push_back("C");
for (int i = 0; i < pcnt; ++i)
params.push_back(parameters[i]);
params.insert(params.end(), parameters.begin(), parameters.end());
ServerInstance->PI->SendEncapsulatedData(params);
if (*parameters[0] == '*')
if (parameters[0][0] == '*')
{
this->Abort();
return false;
@ -166,7 +165,7 @@ class CommandAuthenticate : public Command
this->source = "m_sasl.so";
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
/* Only allow AUTHENTICATE on unregistered clients */
if (user->registered != REG_ALL)
@ -177,7 +176,7 @@ class CommandAuthenticate : public Command
SaslAuthenticator *sasl;
if (!(user->GetExt("sasl_authenticator", sasl)))
sasl = new SaslAuthenticator(user, parameters[0], ServerInstance, Creator);
else if (sasl->SendClientMessage(parameters, pcnt) == false) // IAL abort extension --nenolod
else if (sasl->SendClientMessage(parameters) == false) // IAL abort extension --nenolod
delete sasl;
}
return CMD_FAILURE;

View File

@ -140,11 +140,12 @@ class ModuleServices : public Module
/* On nickchange, if they have +r, remove it */
if (user->IsModeSet('r') && irc::string(user->nick) != oldnick)
{
const char* modechange[2];
std::vector<std::string> modechange;
modechange.resize(2);
modechange[0] = user->nick;
modechange[1] = "-r";
kludgeme = true;
ServerInstance->SendMode(modechange,2,user);
ServerInstance->SendMode(modechange,user);
kludgeme = false;
}
}

View File

@ -29,12 +29,12 @@ class CommandSethost : public Command
TRANSLATE2(TR_TEXT, TR_END);
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
size_t len = 0;
for (const char* x = parameters[0]; *x; x++, len++)
for (std::string::const_iterator x = parameters[0].begin(); x != parameters[0].end(); x++, len++)
{
if (!hostmap[(unsigned char)*x])
if (!hostmap[(const unsigned char)*x])
{
user->WriteServ("NOTICE "+std::string(user->nick)+" :*** SETHOST: Invalid characters in hostname");
return CMD_FAILURE;
@ -50,7 +50,7 @@ class CommandSethost : public Command
user->WriteServ("NOTICE %s :*** SETHOST: Host too long",user->nick);
return CMD_FAILURE;
}
if (user->ChangeDisplayedHost(parameters[0]))
if (user->ChangeDisplayedHost(parameters[0].c_str()))
{
ServerInstance->SNO->WriteToSnoMask('A', std::string(user->nick)+" used SETHOST to change their displayed host to "+user->dhost);
return CMD_SUCCESS;

View File

@ -27,27 +27,27 @@ class CommandSetident : public Command
TRANSLATE2(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 (!*parameters[0])
if (parameters.size() == 0)
{
user->WriteServ("NOTICE %s :*** SETIDENT: Ident must be specified", user->nick);
return CMD_FAILURE;
}
if (strlen(parameters[0]) > IDENTMAX)
if (parameters[0].size() > IDENTMAX)
{
user->WriteServ("NOTICE %s :*** SETIDENT: Ident is too long", user->nick);
return CMD_FAILURE;
}
if (!ServerInstance->IsIdent(parameters[0]))
if (!ServerInstance->IsIdent(parameters[0].c_str()))
{
user->WriteServ("NOTICE %s :*** SETIDENT: Invalid characters in ident", user->nick);
return CMD_FAILURE;
}
user->ChangeIdent(parameters[0]);
user->ChangeIdent(parameters[0].c_str());
ServerInstance->SNO->WriteToSnoMask('A', "%s used SETIDENT to change their ident to '%s'", user->nick, user->ident);
return CMD_SUCCESS;

View File

@ -27,7 +27,7 @@ class CommandSetidle : public Command
TRANSLATE2(TR_TEXT, TR_END);
}
CmdResult Handle (const char* const* parameters, int pcnt, User *user)
CmdResult Handle (const std::vector<std::string>& parameters, User *user)
{
time_t idle = ServerInstance->Duration(parameters[0]);
if (idle < 1)

View File

@ -27,23 +27,23 @@ class CommandSetname : public Command
TRANSLATE2(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 (!*parameters[0])
if (parameters.size() == 0)
{
user->WriteServ("NOTICE %s :*** SETNAME: GECOS must be specified", user->nick);
return CMD_FAILURE;
}
if (strlen(parameters[0]) > MAXGECOS)
if (parameters[0].size() > MAXGECOS)
{
user->WriteServ("NOTICE %s :*** SETNAME: GECOS too long", user->nick);
return CMD_FAILURE;
}
if (user->ChangeName(parameters[0]))
if (user->ChangeName(parameters[0].c_str()))
{
ServerInstance->SNO->WriteToSnoMask('A', "%s used SETNAME to change their GECOS to %s", user->nick, parameters[0]);
ServerInstance->SNO->WriteToSnoMask('A', "%s used SETNAME to change their GECOS to %s", user->nick, parameters[0].c_str());
return CMD_SUCCESS;
}

View File

@ -85,26 +85,26 @@ class cmd_shun : public Command
this->source = "m_shun.so";
}
CmdResult Handle(const char* const*parameters, int pcnt, User *user)
CmdResult Handle(const std::vector<std::string>& parameters, User *user)
{
/* syntax: SHUN nick!user@host time :reason goes here */
/* 'time' is a human-readable timestring, like 2d3h2s. */
if(pcnt == 1)
if (parameters.size() == 1)
{
if (ServerInstance->XLines->DelLine(parameters[0], "SHUN", user))
if (ServerInstance->XLines->DelLine(parameters[0].c_str(), "SHUN", user))
{
ServerInstance->SNO->WriteToSnoMask('x',"%s Removed shun on %s.",user->nick,parameters[0]);
ServerInstance->SNO->WriteToSnoMask('x',"%s Removed shun on %s.",user->nick,parameters[0].c_str());
}
else
{
// XXX todo implement stats
user->WriteServ("NOTICE %s :*** Shun %s not found in list, try /stats s.",user->nick,parameters[0]);
user->WriteServ("NOTICE %s :*** Shun %s not found in list, try /stats s.",user->nick,parameters[0].c_str());
}
return CMD_SUCCESS;
}
else if (pcnt >= 2)
else if (parameters.size() >= 2)
{
// Adding - XXX todo make this respect <insane> tag perhaps..
long duration = ServerInstance->Duration(parameters[1]);
@ -112,7 +112,7 @@ class cmd_shun : public Command
try
{
r = new Shun(ServerInstance, ServerInstance->Time(), duration, user->nick, parameters[2], parameters[0]);
r = new Shun(ServerInstance, ServerInstance->Time(), duration, user->nick, parameters[2].c_str(), parameters[0].c_str());
}
catch (...)
{
@ -125,12 +125,12 @@ class cmd_shun : public Command
{
if (!duration)
{
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent shun for %s.", user->nick, parameters[0]);
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent shun for %s.", user->nick, parameters[0].c_str());
}
else
{
time_t c_requires_crap = duration + ServerInstance->Time();
ServerInstance->SNO->WriteToSnoMask('x', "%s added timed shun for %s, expires on %s", user->nick, parameters[0],
ServerInstance->SNO->WriteToSnoMask('x', "%s added timed shun for %s, expires on %s", user->nick, parameters[0].c_str(),
ServerInstance->TimeString(c_requires_crap).c_str());
}
@ -139,7 +139,7 @@ class cmd_shun : public Command
else
{
delete r;
user->WriteServ("NOTICE %s :*** Shun for %s already exists", user->nick, parameters[0]);
user->WriteServ("NOTICE %s :*** Shun for %s already exists", user->nick, parameters[0].c_str());
}
}
}
@ -195,7 +195,7 @@ class ModuleShun : public Module
}
}
virtual int OnPreCommand(const std::string &command, const char* const*parameters, int pcnt, User* user, bool validated, const std::string &original_line)
virtual int OnPreCommand(const std::string &command, const std::vector<std::string>& parameters, User* user, bool validated, const std::string &original_line)
{
if((command != "PONG") && (command != "PING"))
{

View File

@ -61,7 +61,7 @@ class CommandSVSSilence : public Command
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
@ -79,7 +79,7 @@ class CommandSVSSilence : public Command
if (IS_LOCAL(u))
{
ServerInstance->Parser->CallHandler("SILENCE", &parameters[1], 1, u);
ServerInstance->Parser->CallHandler("SILENCE", std::vector<std::string>(++parameters.begin(), parameters.end()), u);
}
return CMD_SUCCESS;
@ -97,9 +97,9 @@ class CommandSilence : public Command
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
@ -117,17 +117,17 @@ class CommandSilence : public Command
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())

View File

@ -53,8 +53,9 @@ CmdResult cmd_rconnect::Handle (const std::vector<std::string>& parameters, User
{
/* Yes, initiate the given connect */
ServerInstance->SNO->WriteToSnoMask('l',"Remote CONNECT from %s matching \002%s\002, connecting server \002%s\002",user->nick,parameters[0].c_str(),parameters[1].c_str());
std::vector<std::string> para(1);
para.push_back(parameters[1]);
std::vector<std::string> para;
para.resize(1);
para[0] = parameters[1];
std::string original_command = std::string("CONNECT ") + parameters[1];
Creator->OnPreCommand("CONNECT", para, user, true, original_command);
}