+ 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)
+ {
+ /*
+ * 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", ¶meters[1], 1, 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);