Browse Source

* Turns out slowjoin wasn't flawed
* Fixed "jn" notice


svn: 375

Bryan Drewery 22 năm trước cách đây
mục cha
commit
f031a38729
3 tập tin đã thay đổi với 12 bổ sung6 xóa
  1. 4 4
      src/mod/channels.mod/channels.c
  2. 1 1
      src/mod/irc.mod/irc.c
  3. 7 1
      src/mod/irc.mod/mode.c

+ 4 - 4
src/mod/channels.mod/channels.c

@@ -334,10 +334,10 @@ static void got_sj(int idx, char *code, char *par)
   struct chanset_t *chan;
 
   chname = newsplit(&par);
-  delay = atoi(par) + now;
+  delay = ((atoi(par) + now) - server_lag);
   chan = findchan_by_dname(chname);
   if (chan)
-    chan->channel.jointime = ((now + delay) - server_lag);
+    chan->channel.jointime = delay;
 }
 
 static void got_sp(int idx, char *code, char *par) 
@@ -347,10 +347,10 @@ static void got_sp(int idx, char *code, char *par)
   struct chanset_t *chan;
 
   chname = newsplit(&par);
-  delay = atoi(par) + now;
+  delay = ((atoi(par) + now) - server_lag);
   chan = findchan_by_dname(chname);
   if (chan)
-    chan->channel.parttime = ((now + delay) - server_lag);
+    chan->channel.parttime = delay;
 }
 /* got_jn
  * We get this when a bot is opped in a +take chan

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

@@ -1082,7 +1082,7 @@ static void warn_pls_take()
   struct chanset_t *chan;
   for (chan = chanset; chan; chan = chan->next)
     if (channel_take(chan) && me_op(chan))
-      putlog(LOG_WARN, "*", "%s is set +take, and I'm already opped! Try +bitch instead", chan->dname);
+      putlog(LOG_WARN, "*", "%s is set +take, and I'm already opped! +take is insecure, try +bitch instead", chan->dname);
 }
 
 

+ 7 - 1
src/mod/irc.mod/mode.c

@@ -850,8 +850,14 @@ flush_mode(chan, QUICK);
     }
   }
   m->flags |= WASOP;
-  if (check_chan)
+  if (check_chan) {
+    /* tell other bots to set jointime to 0 and join */
+    char *buf = nmalloc(strlen(chan->dname) + 3 + 1);
+    sprintf(buf, "jn %s", chan->dname);
+    putallbots(buf);
+    nfree(buf);
     recheck_channel(chan, 1);
+  }
 }
 
 static void got_deop(struct chanset_t *chan, char *nick, char *from,