########################
# CARA PENGUNAAN SCRIPTS #
########################
 #Contoh : .chanset #namachannel flood-join 4:6 <-- bot akan mendeteksi 4 clone joins in 6 seconds ::) ( 0:0 to disable )
  
set joinlockmodes "imR"
set bantype "1"
set unlocktime "30"
set joinpunish "2"
set jreason "Mass Join Flood"

#======#
bind flud - join joinflood:RanaUsman
proc joinflood:RanaUsman {nick uhost hand type chan} {
global joinlockmodes banmask unlocktime joinpunish jreason botnick
if {![botisop $chan] || [matchattr $hand of]} { return 0 }
set banmask [joinpart:banmask $uhost $nick]
if {($joinpunish == 1)} { 
putquick "MODE $chan +$joinlockmodes"
newchanban $chan $banmask $botnick $jreason
putquick "KICK $chan $nick :$jreason"
utimer $unlocktime [list putquick "MODE $chan -$joinlockmodes"]
}
if {($joinpunish == 2)} { 
putquick "MODE $chan +$joinlockmodes"
putquick "MODE $chan +b $banmask"
putquick "KICK $chan $nick :$jreason"
utimer $unlocktime [list putquick "MODE $chan -$joinlockmodes"]
 }
}
proc joinpart:banmask {uhost nick} {
 global bantype
  switch -- $bantype {
   1 { set banmask "*!*@[lindex [split $uhost @] 1]" }
   2 { set banmask "*!*@[lindex [split [maskhost $uhost] "@"] 1]" }
   3 { set banmask "*!*$uhost" }
   4 { set banmask "*!*[lindex [split [maskhost $uhost] "!"] 1]" }
   5 { set banmask "*!*[lindex [split $uhost "@"] 0]*@[lindex [split $uhost "@"] 1]" }
   6 { set banmask "*$nick*!*@[lindex [split [maskhost $uhost] "@"] 1]" }
   7 { set banmask "*$nick*!*@[lindex [split $uhost "@"] 1]" }
   8 { set banmask "$nick![lindex [split $uhost "@"] 0]@[lindex [split $uhost @] 1]" }
   9 { set banmask "$nick![lindex [split $uhost "@"] 0]@[lindex [split [maskhost $uhost] "@"] 1]" }
   default { set banmask "*!*@[lindex [split $uhost @] 1]" }
   return $banmask
  }
}

putlog "joinflood tcl by dex loaded"
