cmd_invitemeall added
authorpk910 <philipp@zoelle1.de>
Thu, 7 Jul 2011 19:57:24 +0000 (21:57 +0200)
committerpk910 <philipp@zoelle1.de>
Thu, 7 Jul 2011 19:57:24 +0000 (21:57 +0200)
src/chanserv.c

index e968d6338513c54263c0bc63ff6c9a938e6b2381..065f459390cbb8e7e6d0b3e8422fbd4ea6aa5523 100644 (file)
@@ -4512,6 +4512,28 @@ static CHANSERV_FUNC(cmd_inviteme)
     return 1;
 }
 
+static CHANSERV_FUNC(cmd_invitemeall)
+{
+    struct handle_info *target = user->handle_info;
+    struct userData *uData;
+
+    if(!target->channels)
+    {
+        reply("CSMSG_SQUAT_ACCESS", target->handle);
+        return 1;
+    }
+       
+    for(uData = target->channels; uData; uData = uData->u_next)
+    {
+        struct chanData *cData = uData->channel;
+        if(uData->access >= cData->lvlOpts[lvlInviteMe])
+               {
+            irc_invite(cmd->parent->bot, user, cData->channel);
+        }
+    }
+    return 1;
+}
+
 static void
 show_suspension_info(struct svccmd *cmd, struct userNode *user, struct suspended *suspended)
 {
@@ -8529,6 +8551,7 @@ init_chanserv(const char *nick)
     DEFINE_COMMAND(topic, 1, MODCMD_REQUIRE_REGCHAN, "template", "op", "flags", "+never_csuspend", NULL);
     DEFINE_COMMAND(mode, 1, MODCMD_REQUIRE_REGCHAN, "template", "op", NULL);
     DEFINE_COMMAND(inviteme, 1, MODCMD_REQUIRE_CHANNEL, "access", "1", NULL);
+    DEFINE_COMMAND(invitemeall, 1, MODCMD_REQUIRE_AUTHED, NULL);
     DEFINE_COMMAND(invite, 1, MODCMD_REQUIRE_CHANNEL, "access", "master", NULL);
     DEFINE_COMMAND(set, 1, MODCMD_REQUIRE_CHANUSER, "access", "op", NULL);
     DEFINE_COMMAND(wipeinfo, 2, MODCMD_REQUIRE_CHANUSER, "access", "master", NULL);