on *:CONNECT: { var %i = 1 | while ($var(%i.limit*,%i)) { check.timerstart $mid($v1,9) | inc %i } } alias check.timerstart { if (!%i.interval [ $+ [ $1 ] ]) { set %i.interval $+ $1 180 } .timercheckidle. $+ $1 0 %i.interval [ $+ [ $1 ] ] check.idle $1 } alias check.timerstop { .timercheckidle. $+ $1 OFF } alias check.idle { if ($me !isop $1) { return } var %chan = $1 if (!%i.limit [ $+ [ $1 ] ]) { .echo 4 -a Idle Check is not set for %chan return } var %i = $nick(%chan,0,o), %chunk while (%i) { var %n = $nick(%chan,%i,o) if (%n != $me) && ($nick(%chan,%i,o).idle > %i.limit [ $+ [ %chan ] ]) { .msg %n Idle Time Limit is : %i.limit [ $+ [ %chan ] ] var %chunk = $addtok(%chunk,%n,32) if ($numtok(%chunk,32) == $modespl) { mode %chan $+(-,$str(o,$modespl)) %chunk var %chunk } } dec %i } if (%chunk) { mode %chan $+(-,$str(o,$numtok(%chunk,32))) %chunk } } menu channel { - Idle Limiter .Set :set %i.limit $+ $chan $$?="Idle limit? (60 = 1 minute) " .Reset :unset %i.limit $+ $chan .Check Now: { check.idle $chan } .- .Start Auto Check: { check.timerstart $chan } .Stop Auto Check: { check.timerstop $chan } .Interval ( $+ %i.interval [ $+ [ $chan ] ] $+ ): { set %i.interval $+ $chan $$?="Interval in sec for $chan ?" var %n = checkidle. $+ $chan | if (!$timer(%n)) { return } check.timerstart $chan } - }