ircN for mIRC — File Browser
ircNformIRCv6.0 / ircNformIRCv6.0 / ircn / SYSTEM / Idle.mrc
Idle.mrc — 6.87 KB — Download this file
;%%%%%%%%%%%%%%%%%%%%%%%%
;script idle
;version 1.01
;author icN, Chutzpah
;email chutzpah@ircn.com
;url http://www.ircN.com
;%%%%%%%%%%%%%%%%%%%%%%%%
on 1:CONNECT {
.remove $tp(idle.txt)
.remove $tp(idlep.txt)
if (%idauto == on) { .timer 0 300 idchk | set %idchktimer $ltimer }
}
on 1:INPUT: {
if (($active ischan) && ($left($1,1) != /)) && ((%idchan == all) || ($chan isin %idchan)) writeini $tp(idle.txt) $active $rb($me) $ctime
}
on 1:JOIN:# {
if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime
}
on 1:PART:# {
if (($chan isin %idchan) || (%idchan == all)) remini $tp(idle.txt) $chan $rb($nick)
}
on 1:TEXT:*:# {
if (($chan isin %idchan) || (%idchan == all)) {
if (($1- == %idphrase) && (%idtog == on) && ($nick !isop $chan)) .quote kick $chan $nick : $+ %idreason
writeini $tp(idle.txt) $chan $rb($nick) $ctime
}
}
on 1:NICK {
set %i 0
:start
inc %i
if ($chan(%i) == $null) halt
elseif ($newnick ison $chan(%i)) writeini $tp(idle.txt) $chan(%i) $rb($newnick) $ctime
else goto start
}
on 1:ACTION:*:# {
if (($chan isin %idchan) || (%idchan == all)) {
if (($1- == %idphrase) && (%idtog == on) && ($nick !isop $chan)) .quote kick $chan $nick : $+ %idreason
writeini $tp(idle.txt) $chan $rb($nick) $ctime
}
}
on 1:KICK:# {
if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime
}
on 1:OP:# {
if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime
}
on 1:DEOP:# {
if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime
}
on 1:BAN:# {
if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime
}
on 1:UNBAN:# {
if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime
}
on 1:TOPIC:# {
if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime
}
on 1:MODE:# {
if (($chan isin %idchan) || (%idchan == all)) writeini $tp(idle.txt) $chan $rb($nick) $ctime
}
raw 324:* {
if (($2 isin %idchan) || (%idchan == all)) idle -r $2
}
alias n.idle return $readini $tp(idle.txt) $1 $rb($2)
alias ch.idle {
if ($n.idle($1,$2)) return $n.idle($1,$2)
else {
writeini $tp(idle.txt) $1 $rb($2) $ctime
return $ctime
}
}
alias idle {
if (($1 == -r) && ($2)) {
if (($2 isin %idchan) || (%idchan == all)) {
set %i 0
:start
inc %i
if ($nick($2,%i) == $null) halt
else {
writeini $tp(idle.txt) $2 $rb($nick($2,%i)) $ctime
goto start
}
}
else iecho Error: $hc($2) is not being watched.
}
elseif (($1 == -k) && ($2 ischan)) {
if ($me !isop $2) iecho You are not opped on $hc($2) $+ .
elseif (($2 isin %idchan) || (%idchan == all)) {
if ($3) set %idletmp $mpy($3,60)
elseif (%idlemax) set %idletmp %idlemax
else set %idletmp 1800
set %i 0
:start
inc %i
if ($nick($2,%i) == $null) { unset %idletmp | goto end }
if ($nick($2,%i) isop $2) goto start
if ($sub($ctime,$ch.idle($2,$nick($2,%i))) > %idletmp) .quote kick $2 $nick($2,%i) :idle $div(%idletmp,60) $+ m
goto start
:end
}
else iecho Error: $hc($2) is not being watched.
}
elseif ($1 == -s) {
set %idchan $$?="Set channels to watch (type 'all' for all)"
%idlemax = 60 * $$?="Maximum idle time in minutes (current [ %idlemax ] )"
set %idphrase $$?="Kick on phrase (current [ %idphrase ] )"
set %ikreason $$?="idle kick reason (current [ %idreason ] )"
}
elseif (($1 == -v) && ($2 ischan)) {
if (($2 isin %idchan) || (%idchan == all)) {
write -c $tp(idlep.txt)
write $tp(idlep.txt) close:/set $chr(37) $+ iloc $chr(36) $+ swlc(@Idle Statistics) $chr(124) window -c @Idle Statistics $chr(124) .remove $tp(idlep.txt)
write $tp(idlep.txt) -
set %i 0
:start
inc %i
if ($chan(%i) == $null) {
window -ae @Idle Statistics %iloc /idle $tp(idlep.txt)
aline @Idle Statistics . $+ $str(-,47) $+ .
iiecho $chr(124) Idle Statistics for $fix(25,$hc($2)) $chr(124)
aline @Idle Statistics $chr(124) $+ $str(-,47) $+ $chr(124)
set %i 1
set %j $nick($2,0)
:start1
if (%j > 1) {
aline @Idle Statistics $chr(124) $fix(11,$clop($nick($2,%i),$2)) $lfix(9,$sc($rsc($duration($sub($ctime,$ch.idle($2,$nick($2,%i))))))) $chr(124) $fix(11,$clop($nick($2,$pls(1,%i)),$2)) $lfix(9,$sc($rsc($duration($sub($ctime,$ch.idle($2,$nick($2,$pls(1,%i)))))))) $chr(124)
inc %i 2
dec %j 2
goto start1
}
if (%j == 1) aline @Idle Statistics $chr(124) $fix(11,$clop($nick($2,%i),$2)) $lfix(9,$sc($rsc($duration($sub($ctime,$ch.idle($2,$nick($2,%i))))))) $chr(124) $str($chr(160),21) $chr(124)
aline @Idle Statistics ' $+ $str(-,23) $+ ' $+ $str(-,23) $+ '
}
elseif ((%idchan == all) || ($chan(%i) isin %idchan)) {
write $tp(idlep.txt) $chan(%i)
if ($me isop $chan(%i)) {
write $tp(idlep.txt) .kick
write $tp(idlep.txt) ..10m:/idle -k $chan(%i) 10
write $tp(idlep.txt) ..20m:/idle -k $chan(%i) 20
write $tp(idlep.txt) ..30m:/idle -k $chan(%i) 30
write $tp(idlep.txt) ..N m:/idle -k $chan(%i) $chr(36) $+ ?="Enter number of minutes:"
}
write $tp(idlep.txt) .nick
write $tp(idlep.txt) ..view
write $tp(idlep.txt) ...silent:/idle -n $chan(%i) $str($chr(36),2) $+ ?="Enter nickname"
write $tp(idlep.txt) ...verbose:/idle -c $chan(%i) $str($chr(36),2) $+ ?="Enter nickname"
if ($me isop $chan(%i)) write $tp(idlep.txt) ..kick:/.quote kick $chan(%i) $str($chr(36),2) $+ ?="Enter nickname" :idle $chr(36) $+ rsc( $+ $chr(36) $+ duration( $+ $chr(36) $+ sub( $+ $chr(36) $+ ctime, $+ $chr(36) $+ n.idle( $+ $chan(%i) $+ , $chr(36) $+ ! ))))
write $tp(idlep.txt) .relist:/idle -v $chan(%i)
write $tp(idlep.txt) .-
write $tp(idlep.txt) .reset:/idle -r $chan(%i)
goto start
}
else goto start
}
else iecho Error, $hc($2) is not being watched.
}
elseif (($1 == -n) && ($3)) {
if ($nc($3) !ison $2) iecho $hc($3) is not on $hc($nc($2)) $+ .
elseif (($2 isin %idchan) || (%idchan == all)) iecho $hc($nc($3)) has been idle on $sc($2) for $hc($rsc($duration($sub($ctime,$ch.idle($2,$nc($3))))))
else iecho Error: $hc($2) is not being watched.
}
elseif (($1 == -c) && ($3)) {
if ($nc($3) !ison $2) iecho $hc($3) is not on $hc($nc($2)) $+ .
if (($2 isin %idchan) || (%idchan == all)) msg $2 $nc($3) has been idle on $2 for $rsc($duration($sub($ctime,$ch.idle($2,$nc($3)))))
else iecho Error: $hc($2) is not being watched.
}
else iecho Syntax: /idle -<v|k|r|n|c|s> [#channel] [nickname/duration]
}