+ /*
+ * XXX: thought occurs to me
+ * We may want to change the syntax of this command to
+ * SVSSILENCE <flagsora+> +<nick> -<nick> +<nick>
+ * style command so services can modify lots of entries at once.
+ * leaving it backwards compatible for now as it's late. -- w
+ */
+ if (!ServerInstance->ULine(user->server))
+ return CMD_FAILURE;
+
+ User *u = ServerInstance->FindNick(parameters[0]);
+ if (!u)
+ return CMD_FAILURE;
+
+ if (IS_LOCAL(u))
+ {
+ ServerInstance->Parser->CallHandler("SILENCE", std::vector<std::string>(++parameters.begin(), parameters.end()), u);
+ }
+
+ return CMD_SUCCESS;
+ }
+};
+
+class CommandSilence : public Command
+{
+ unsigned int& maxsilence;
+ public:
+ CommandSilence (InspIRCd* Instance, unsigned int &max) : Command(Instance,"SILENCE", 0, 0), maxsilence(max)
+ {
+ this->source = "m_silence_ext.so";
+ syntax = "{[+|-]<mask> <p|c|i|n|t|a|x>}";
+ TRANSLATE3(TR_TEXT, TR_TEXT, TR_END);
+ }
+
+ CmdResult Handle (const std::vector<std::string>& parameters, User *user)
+ {
+ if (!parameters.size())