]> git.donarmstrong.com Git - infobot.git/blobdiff - src/IRC/IrcHelpers.pl
fix chanlimitChange time
[infobot.git] / src / IRC / IrcHelpers.pl
index 6358aeafa4cbe780211e4d723699a1a2ac93922d..56811b701f73b35cdcc270b7eb2f2a5842aa2417 100644 (file)
@@ -258,6 +258,7 @@ sub chanLimitVerify {
     if (defined $l and &IsChanConf("chanlimitcheck")) {
        my $plus  = &getChanConfDefault("chanlimitcheckPlus", 5, $chan);
        my $count = scalar(keys %{ $channels{$chan}{''} });
+       my $int   = &getChanConfDefault("chanlimitcheckInterval", 10, $chan);
 
        my $delta = $count + $plus - $l;
        $delta    =~ s/^\-//;
@@ -266,12 +267,19 @@ sub chanLimitVerify {
            &WARN("clc: stupid to have plus at $plus, fix it!");
        }
 
+       if (exists $cache{ "chanlimitChange_$chan" }) {
+           if (time() - $cache{ "chanlimitChange_$chan" } < $int*60) {
+               return;
+           }
+       }
+
        ### todo: check if we have ops.
        ### todo: if not, check if nickserv/chanserv is avail.
        ### todo: unify code with chanlimitcheck()
        if ($delta > 5) {
            &status("clc: big change in limit; changing.");
            &rawout("MODE $chan +l ".($count+$plus) );
+           $cache{ "chanlimitChange_$chan" } = time();
        }
     }
 }