#include "utils.h"
#include "commands.h"
-CmdResult CommandAddLine::Handle(User* usr, std::vector<std::string>& params)
+CmdResult CommandAddLine::Handle(User* usr, Params& params)
{
XLineFactory* xlf = ServerInstance->XLines->GetFactory(params[0]);
const std::string& setter = usr->nick;
if (!xlf)
{
- ServerInstance->SNO->WriteToSnoMask('d',"%s sent me an unknown ADDLINE type (%s).",setter.c_str(),params[0].c_str());
+ ServerInstance->SNO->WriteToSnoMask('x', "%s sent me an unknown ADDLINE type (%s).", setter.c_str(), params[0].c_str());
return CMD_FAILURE;
}
XLine* xl = NULL;
try
{
- xl = xlf->Generate(ServerInstance->Time(), ConvToInt(params[4]), params[2], params[5], params[1]);
+ xl = xlf->Generate(ServerInstance->Time(), ConvToNum<unsigned long>(params[4]), params[2], params[5], params[1]);
}
catch (ModuleException &e)
{
- ServerInstance->SNO->WriteToSnoMask('d',"Unable to ADDLINE type %s from %s: %s", params[0].c_str(), setter.c_str(), e.GetReason().c_str());
+ ServerInstance->SNO->WriteToSnoMask('x', "Unable to ADDLINE type %s from %s: %s", params[0].c_str(), setter.c_str(), e.GetReason().c_str());
return CMD_FAILURE;
}
- xl->SetCreateTime(ConvToInt(params[3]));
+ xl->SetCreateTime(ConvToNum<time_t>(params[3]));
if (ServerInstance->XLines->AddLine(xl, NULL))
{
if (xl->duration)
{
- std::string timestr = InspIRCd::TimeString(xl->expiry);
- ServerInstance->SNO->WriteToSnoMask('X',"%s added %s%s on %s to expire on %s: %s",setter.c_str(),params[0].c_str(),params[0].length() == 1 ? "-line" : "",
- params[1].c_str(), timestr.c_str(), params[5].c_str());
+ ServerInstance->SNO->WriteToSnoMask('X', "%s added timed %s%s for %s, expires in %s (on %s): %s",
+ setter.c_str(), params[0].c_str(), params[0].length() == 1 ? "-line" : "",
+ params[1].c_str(), InspIRCd::DurationString(xl->duration).c_str(),
+ InspIRCd::TimeString(xl->expiry).c_str(), params[5].c_str());
}
else
{
- ServerInstance->SNO->WriteToSnoMask('X',"%s added permanent %s%s on %s: %s",setter.c_str(),params[0].c_str(),params[0].length() == 1 ? "-line" : "",
- params[1].c_str(),params[5].c_str());
+ ServerInstance->SNO->WriteToSnoMask('X', "%s added permanent %s%s on %s: %s",
+ setter.c_str(), params[0].c_str(), params[0].length() == 1 ? "-line" : "",
+ params[1].c_str(), params[5].c_str());
}
TreeServer* remoteserver = TreeServer::Get(usr);