add svspart
[srvx.git] / src / opserv.c
index 821125916c8cb4136e59dea6e14fe0468c1eeb38..210d64fac7d4a6a95a37bcc466d60cee765500f0 100644 (file)
@@ -268,6 +268,7 @@ static const struct message_entry msgtab[] = {
     { "OSMSG_SVSNICKUSED", "$b%s$b is an already used nickname." },
     { "OSMSG_SVSNICK", "You have renamed $b%s$b to $b%s$b." },
     { "OSMSG_SVSJOIN", "$b%s$b joined $b%s$b." },
+    { "OSMSG_SVSPART", "$b%s$b parted $b%s$b." },
     { "OSMSG_SVSMODE", "You have set mode $b%s$b for $b%s$b." },
     { "OSMSG_SIMUL", "You have simuled $b%s$b: %s" },
     { "OSMSG_DEVNULL_USER" , "[%s] %s  %s" },
@@ -4772,6 +4773,23 @@ static MODCMD_FUNC(cmd_svsjoin)
     return 1;
 }
 
+static MODCMD_FUNC(cmd_svspart)
+{
+    struct userNode *target;
+    if(!(target=GetUserH(argv[1]))) {
+        reply("OSMSG_SVSNONICK", argv[1]);
+        return 0;
+    }
+    if(!IsChannelName(argv[2]))
+    {
+        reply("MSG_NOT_CHANNEL_NAME");
+        return 0;
+    }
+    irc_svspartchan(opserv,target,argv[2]);
+    reply("OSMSG_SVSPART",target->nick,argv[2]);
+    return 1;
+}
+
 static MODCMD_FUNC(cmd_svsnick)
 {
     struct userNode *target;
@@ -5085,6 +5103,7 @@ init_opserv(const char *nick)
     opserv_define_func("DEVNULL SET", cmd_setdevnull, 200, 0, 2);
     opserv_define_func("DEVNULL LIST", cmd_listdevnull, 200, 0, 0);
     opserv_define_func("SVSJOIN", cmd_svsjoin, 800, 0, 3);
+    opserv_define_func("SVSPART", cmd_svspart, 800, 0, 3);
     opserv_define_func("SVSMODE", cmd_svsmode, 800, 0, 3);
     opserv_define_func("SVSNICK", cmd_svsnick, 800, 0, 3);
     opserv_define_func("RELAY", cmd_relay, 800, 0, 0);