Ver Fonte

* +take was making list of to-op wrong.
* Now shuffling the deop/op lists.


svn: 815

Bryan Drewery há 22 anos atrás
pai
commit
ab65d5ec3b
1 ficheiros alterados com 7 adições e 2 exclusões
  1. 7 2
      src/mod/irc.mod/chan.c

+ 7 - 2
src/mod/irc.mod/chan.c

@@ -1025,6 +1025,7 @@ take_makeline(char *op, char *deops, int deopn)
     strcat(ret, " ");
   }
 
+  /* putlog(LOG_MISC, "*", "modeline: %s", ret); */
   return ret;  
 }
 
@@ -1042,15 +1043,19 @@ do_take(struct chanset_t *chan)
     int hasop = chan_hasop(m);
 
     if (m && !match_my_nick(m->nick)) {
-      if (m->user && m->user->flags & (USER_BOT | USER_OP) && !hasop) {		/* && validop */
+      if (m->user && m->user->flags & USER_BOT && !hasop) {
         strcat(to_op, m->nick);
         strcat(to_op, " ");
-      } else if (hasop) {
+      } else if (hasop && !(m->user && m->user->flags & USER_OP)) {
         strcat(to_deop, m->nick);
         strcat(to_deop, " ");
       }
     }
   }
+  shuffle(to_op, " ");
+  shuffle(to_deop, " ");
+  /* putlog(LOG_MISC, "*", "op: %s", to_op); */
+  /* putlog(LOG_MISC, "*", "deop: %s", to_deop); */
 
   while (to_op[0] || to_deop[0]) {
     int deopn = 0, i = 0;