فهرست منبع

* No need to send JOIN when cycling channels, let the bot rejoin auto when seeing the PART (slightly slower but less complex)

Bryan Drewery 16 سال پیش
والد
کامیت
ed438da26f
2فایلهای تغییر یافته به همراه4 افزوده شده و 7 حذف شده
  1. 3 4
      src/mod/irc.mod/chan.c
  2. 1 3
      src/mod/irc.mod/irc.c

+ 3 - 4
src/mod/irc.mod/chan.c

@@ -3012,11 +3012,10 @@ void check_should_cycle(struct chanset_t *chan)
     /* I'm only one opped here... and other side has some ops... so i'm cycling */
     /* I'm only one opped here... and other side has some ops... so i'm cycling */
     if (localnonops) {
     if (localnonops) {
       /* need to unset any +kil first */
       /* need to unset any +kil first */
-      dprintf(DP_MODE, "MODE %s -ilk %s\nPART %s\nJOIN %s\n", chan->name,
-                            (chan->channel.key && chan->channel.key[0]) ? chan->channel.key : "",
-                             chan->name, chan->name);
+      dprintf(DP_MODE, "MODE %s -ilk %s\n", chan->name[0] ? chan->name : chan->dname, (chan->channel.key && chan->channel.key[0]) ? chan->channel.key : "");
+      dprintf(DP_MODE, "PART %s\n", chan->name[0] ? chan->name : chan->dname);
     } else
     } else
-      dprintf(DP_MODE, "PART %s\nJOIN %s\n", chan->name, chan->name);
+      dprintf(DP_MODE, "PART %s\n", chan->name[0] ? chan->name : chan->dname);
   }
   }
 }
 }
 
 

+ 1 - 3
src/mod/irc.mod/irc.c

@@ -1370,9 +1370,7 @@ check_lonely_channel(struct chanset_t *chan)
     if (chan->name[0] != '+') { /* Its pointless to cycle + chans for ops */
     if (chan->name[0] != '+') { /* Its pointless to cycle + chans for ops */
       putlog(LOG_MISC, "*", "Trying to cycle %s to regain ops.", chan->dname);
       putlog(LOG_MISC, "*", "Trying to cycle %s to regain ops.", chan->dname);
       dprintf(DP_MODE, "PART %s\n", chan->name);
       dprintf(DP_MODE, "PART %s\n", chan->name);
-      /* If it's a !chan, we need to recreate the channel with !!chan <cybah> */
-      dprintf(DP_MODE, "JOIN %s%s %s\n", (chan->dname[0] == '!') ? "!" : "", chan->dname, chan->key_prot);
-      chan->ircnet_status |= CHAN_JOINING;
+      // Will auto rejoin once the bot PARTs
       whined = 0;
       whined = 0;
     }
     }
   } else if (any_ops(chan)) {
   } else if (any_ops(chan)) {