Parcourir la source

* Don't kick friendly bots that are desynced: op them.

Bryan Drewery il y a 15 ans
Parent
commit
85fcfbe07b
2 fichiers modifiés avec 11 ajouts et 4 suppressions
  1. 2 0
      doc/UPDATES
  2. 9 4
      src/mod/irc.mod/mode.c

+ 2 - 0
doc/UPDATES

@@ -1,3 +1,5 @@
+* Don't kick friendly bots that are desynced: op them.
+
 1.3 - http://wraith.botpack.net/milestone/1.3
 * Binary / shell / startup changes
   * Binary error messages are no longer obscure numbers or fake segfaults. (Compile with OBSCURE_ERRORS to re-enable)

+ 9 - 4
src/mod/irc.mod/mode.c

@@ -1245,10 +1245,15 @@ gotmode(char *from, char *msg)
           m->flags |= SENTKICK;
           reversing = 1;
         } else if (!chan_hasop(m) && !channel_nodesynch(chan)) {
-          putlog(LOG_MODES, ch, "Mode change by non-chanop on %s!  Reversing...", ch);
-          dprintf(DP_MODE, "KICK %s %s :%sAbusing desync\n", ch, m->nick, kickprefix);
-          m->flags |= SENTKICK;
-          reversing = 1;
+          if (u && u->bot && chk_op(user, chan)) {
+            putlog(LOG_MODES, ch, "Mode change by friendly non-chanop on %s!  Opping...", ch);
+            do_op(m->nick, chan, 0, 0);
+          } else {
+            putlog(LOG_MODES, ch, "Mode change by non-chanop on %s!  Reversing...", ch);
+            dprintf(DP_MODE, "KICK %s %s :%sAbusing desync\n", ch, m->nick, kickprefix);
+            m->flags |= SENTKICK;
+            reversing = 1;
+          }
         }
       }