]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/addline.cpp
Add a shun option to only apply when users are fully connected.
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / addline.cpp
index 1bf84760456b6a39e2ed77d5cb8bc454935dda2b..f0a604858fe9c86ac48452f4cd54611da510fc84 100644 (file)
@@ -1,6 +1,13 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
+ *   Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions>
+ *   Copyright (C) 2018 Sadie Powell <sadie@witchery.services>
+ *   Copyright (C) 2013-2014 Attila Molnar <attilamolnar@hush.com>
+ *   Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
+ *   Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
+ *   Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
+ *   Copyright (C) 2008, 2010 Craig Edwards <brain@inspircd.org>
  *   Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
  *
  * This file is part of InspIRCd.  InspIRCd is free software: you can
 #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);