Use this at your own risk. Setting the time for too low a number may cause overlaps and/or severe lag times (also dependent on the number of people in the room). Only the person/bot running the code has been exempted. If you'd like others to be exempted, let me know how they are designated,. and I'll see what I can do.
Code automatically checks when a person joins the channel, as well as via the timer.

Code:
 on *:join:#:{
  set %nick $nick
  set %chan $chan
  bad.channels $nick
}
menu channel,nicklist {
  Bad Channels
  .Scan Now : bad.channels $chan
  .Set Timed scan : {
    set %bad.channel.scan $$?="Time between scans"
    if (%bad.channel.scan !isnum) && ($chr(58) !isin $v1) {
      echo 4 -a Invalid Format
      echo 12 -a Number of minutes or hh:mm:ss format only
      unset %bad.channel.scan
    }
    else {
      set %bad.channel.scan $iif(%bad.channel.scan isnum,$v1,$iif($chr(58) isin %bad.channel.scan,$duration($v1)))
    }
    if %bad.channel.scan {
      .timerbad.channel 0 %bad.channel.scan bad.channels $chan
    }
  }
}
alias bad.channels {
  if $1 == %nick {
    .enable #bad.channels.whois
    .whois $1
  }
  else {
    unset %nick
    var %a = 1
    while %a <= $nick($1,0) && ($nick($1,%a) != $me) {
      .enable #bad.channels.whois
      .whois $nick($1,%a)
      inc %a
    }
  }
}
#bad.channels.whois off
raw 318:*:{
  .disable #bad.channels.whois
  haltdef
}
raw 319:*:{
  var %b = 1, %c = $numtok($3-,32)
  while %b <= %c {
    if $read(bad_channels.txt,w,$gettok($3-,%b,32)) && ($me isop %chan) {
      .ban -k %chan $2 Bad Channels detected
    }
    inc %b
  }
}
#bad.channels.whois end