Idle Check

By YmmaX on Apr 29, 2020

This script is mass /whois-ing your channel (except @ops), and you can BAN idlers with a click. Also is showing in red colors the idle time if is more than 4 hours.

;###
;# Idle Check & BAN
;# yM]x @ UnderNet
;###

RAW 311:*: {
 if (%idlecheckvalue == true) {
  if ($2 isop %idlecheckchan) { halt }
  if ($2 !isop %idlecheckchan) {
   echo %idlecheckchan -
   echo %idlecheckchan * $2 $+ ! $+ $3 $+ @ $+ $4-
   halt
  }
 }
}
RAW 319:*: {
 if (%idlecheckvalue == true) { halt }
}
RAW 312:*: {
 if (%idlecheckvalue == true) { halt }
}
RAW 313:*: {
 if (%idlecheckvalue == true) {
  if ($2 isop %idlecheckchan) { halt }
  if ($2 !isop %idlecheckchan) {
   echo %idlecheckchan * $2 is an IRC Operator
   halt
  }
 }
}
RAW 330:*: {
 if (%idlecheckvalue == true) {
  if ($2 isop %idlecheckchan) { halt }
  if ($2 !isop %idlecheckchan) {
   echo %idlecheckchan * $2 is logged in as $3
   halt
  }
 }
}
;If the allowed idle time is other than 4, change the value for this RAW.
RAW 317:*: {
 if (%idlecheckvalue == true) {
  if ($3 >= $calc( 4 * 60 * 60 )) {
   /echo %idlecheckchan * $2 has been idle4 $duration( $+ $3 $+ ) $+ 
   /echo %idlecheckchan * $2 has chan-idle: $duration($nick(%idlecheckchan,$2).idle)
   /echo %idlecheckchan -
   halt
  }
 }
}

alias /idlecheck {
 if ($active ischan) {
  .set %idlecheckvalue true
  .set %idlecheckchan $active
  .set %idlecheckn $nick($active,0)
  .set %idlechecki 1
  :next
   if (%idlechecki > %idlecheckn) { goto done }
   if (%idlechecki <= %idlecheckn) {
    whois $nick($active,%idlechecki) $nick($active,%idlechecki)
    inc %idlechecki
    goto next
   }
  :done
   .timer 1 300 /.set %idlecheckvalue false
   .timer 1 300 /.unset %idlecheck*
 }
}

menu channel {
 -
 Idle Check:idlecheck
 -
}
menu nicklist {
 -
 BAN (Idle):{ if ($1 != $null) { /.msg x ban # $address($1,2) 1h 100 Do not park in this channel, please - your idle was: $$?="Idle Time" $+ . } }
 -
}

/load -rs idlecheckban.mrc

Comments

Sign in to comment.
biase   -  May 06, 2020

i think using $nick(channel, nick).idle is more suitable to check for idle users in channel, since mas whois'ing is like flooding the server

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.