try this :

Code


on !*:JOIN:#:{
  if (!$Timer($+(CheckNicks,.,$network,.,$chan,.,$nick))) {   .Timer $+ $+(CheckNicks,.,$network,.,$chan,.,$nick)  -md 1 750 badnick_alias $unsafe($chan) $nick  } 
}

ON *:nick:{
  haltdef
  var %whloop = 1
  while ( $comchan($newnick,%whloop) != $null )  {
    var %chan $v1
    if (!$nick(%chan,$newnick,@&~%) && $nick(%chan,$me,@&~%)) { badnick_alias %chan $newnick  }
    inc %whloop
  }
  halt
}

ON *:op:#test:{
  if ($opnick == $me) {
    var %loop = 1, %nick , %kickmsg = please change your nick thank you.... 
    while (%loop <= $nick($chan,0)) {
      %nick = $nick($chan,%loop)
      if ($len( %nick ) < 3 || ($calc($regex(%nick,/[A-Z]/g) * 100 / $len(%nick)) > 30)) { 
        if (!$nick($chan,%nick,~&@%+)) { var %banmask = $addtok(%banmask,$MuteBanMask(%nick),32) }
        if ($numtok(%banmask,32) == 10) { mode %chan + $+ $str(b,$numtok(%banmask,32)) %banmask  | unset %banmask }      
      }  
      inc %loop 1
    }
  }
  if (%banmask) { mode %chan + $+ $str(b,$numtok(%banmask,32)) %banmask }
}


Alias MuteBanMask { return q: $+ $address($1,2) }


alias badnick_alias {
  var %chan $1 , %nick $2
  if (%nick !ison %chan || $nick( %chan , %nick ,@&~%)) { halt }
  if ($len( %nick ) < 3 || ($calc($regex(%nick,/[A-Z]/g) * 100 / $len(%nick)) > 30))  {
    if (!$Timer($+(CheckNickZ,.,$network,.,%chan,.,%nick))) {   
      .Timer $+ $+(CheckNickZ,.,$network,.,%chan,.,%nick)  3 15 badnick_still_on_chan $unsafe(%chan) %nick  
    } 
  }
}

alias badnick_still_on_chan {
  inc $+(%,CheckWarnings,.,$network,.,$1,.,$2)
  if ($2 ison $1 && $($+(%,CheckWarnings,.,$network,.,$1,.,$2),2) < 3) { NOTICE $2  WARNING } 
  elseif ($($+(%,CheckWarnings,.,$network,.,$1,.,$2),2)  == 3 && $2 ison $1 ) { if ($+(q:$address($2,2)) !isban $1) { mode $1 +b $+(q:$address($2,2)) } | .Timer $+ $+(CheckNickZ,.,$network,.,$1,.,$2) off | unset % $+ $+(CheckWarnings,.,$network,.,$1,.,$2)  }
  elseif ($2 !ison $1) {  .Timer $+ $+(CheckNickZ,.,$network,.,$1,.,$2) off | unset $eval($+(%,CheckWarnings,.,$network,.,$1,.,$2),1)  }
}