only give users +ov if they have UserAutoOp enabled on cmd_resync
authorpk910 <philipp@zoelle1.de>
Thu, 7 Jul 2011 20:01:59 +0000 (22:01 +0200)
committerpk910 <philipp@zoelle1.de>
Thu, 7 Jul 2011 20:01:59 +0000 (22:01 +0200)
src/chanserv.c

index 065f459390cbb8e7e6d0b3e8422fbd4ea6aa5523..f04c3fbecf97bce332569e80e2b4373d4d74e6f9 100644 (file)
@@ -4830,8 +4830,16 @@ static CHANSERV_FUNC(cmd_resync)
         {
             if(!(mn->modes & MODE_CHANOP))
             {
-                changes->args[used].mode = MODE_CHANOP;
-                changes->args[used++].u.member = mn;
+                if(!uData || IsUserAutoOp(uData)) 
+                {
+                    changes->args[used].mode = MODE_CHANOP;
+                    changes->args[used++].u.member = mn;
+                    if(!(mn->modes & MODE_VOICE))
+                    {
+                        changes->args[used].mode = MODE_VOICE;
+                        changes->args[used++].u.member = mn;
+                    }
+                }
             }
         }
         else if(!cData->lvlOpts[lvlGiveVoice]
@@ -4842,7 +4850,7 @@ static CHANSERV_FUNC(cmd_resync)
                 changes->args[used].mode = MODE_REMOVE | (mn->modes & ~MODE_VOICE);
                 changes->args[used++].u.member = mn;
             }
-            if(!(mn->modes & MODE_VOICE))
+            if(!(mn->modes & MODE_VOICE) && (!uData || IsUserAutoOp(uData)))
             {
                 changes->args[used].mode = MODE_VOICE;
                 changes->args[used++].u.member = mn;