|
@@ -1,160 +0,0 @@
|
|
|
-#########################################################################
|
|
|
|
|
-## BlackTools - The Ultimate Channel Control Script ##
|
|
|
|
|
-## One TCL. One smart Eggdrop ##
|
|
|
|
|
-#########################################################################
|
|
|
|
|
-###################### ANTIBADQUITPART TCL ##########################
|
|
|
|
|
-#########################################################################
|
|
|
|
|
-## ##
|
|
|
|
|
-## BlackTools : http://blacktools.tclscripts.net ##
|
|
|
|
|
-## Bugs report : http://www.tclscripts.net/ ##
|
|
|
|
|
-## GitHub page : https://github.com/tclscripts/BlackToolS-TCL-script ##
|
|
|
|
|
-## Online Help : irc://irc.undernet.org/tcl-help ##
|
|
|
|
|
-## #TCL-HELP / UnderNet ##
|
|
|
|
|
-## You can ask in english or romanian ##
|
|
|
|
|
-## ##
|
|
|
|
|
-#########################################################################
|
|
|
|
|
-
|
|
|
|
|
-proc badquitpart:protect {nick host hand chan arg} {
|
|
|
|
|
-global botnick black
|
|
|
|
|
- set chan1 $chan
|
|
|
|
|
- set arg [split $arg]
|
|
|
|
|
- set found_pub ""
|
|
|
|
|
- set found_color 0
|
|
|
|
|
- set found_msgflood 0
|
|
|
|
|
- set banmask [return_mask [return_host_num "antibadquitpart" $chan $host] $host $nick]
|
|
|
|
|
-if {![validchan $chan]} { return }
|
|
|
|
|
-if {[setting:get $chan badquitpart]} {
|
|
|
|
|
- set handle [nick2hand $nick]
|
|
|
|
|
-foreach usr [userlist "-|AOMV" $chan] {
|
|
|
|
|
- set hst [getuser $usr hosts]
|
|
|
|
|
-foreach hhost $hst {
|
|
|
|
|
-if {[string match -nocase $hhost $banmask]} {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-if {![botisop $chan] && ![setting:get $chan xonly]} { return }
|
|
|
|
|
-if {[matchattr $handle $black(exceptflags) $chan]} { return }
|
|
|
|
|
- set bl_protect [blacktools:protect $nick $chan]
|
|
|
|
|
-if {$bl_protect == "1"} { return }
|
|
|
|
|
-if {[isbotnick $nick]} { return }
|
|
|
|
|
- set text [check:except $arg $chan $black(badquitpartwords) $black(badquitpartexcept) "BADQUITPART"]
|
|
|
|
|
- set check_word [check:file:word $chan $text "BADQUITPART"]
|
|
|
|
|
-if {$check_word != "0"} {
|
|
|
|
|
- set found_pub $check_word
|
|
|
|
|
-}
|
|
|
|
|
-foreach word $black(badquitpartwords) {
|
|
|
|
|
-if {[string match -nocase $word $text]} {
|
|
|
|
|
- set found_pub $word
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-if {$found_pub != ""} {
|
|
|
|
|
- blacktools:banner:2 $nick "ANTIBADQUITPART:$found_pub" $chan $chan1 $host "0"
|
|
|
|
|
-if {[link:status $chan] == "1"} {
|
|
|
|
|
- foreach c [link:chan:get $chan] {
|
|
|
|
|
- blacktools:banner:2 $nick "ANTIBADQUITPART:$found_pub" $c $c $host "1"
|
|
|
|
|
- }
|
|
|
|
|
- blacktools:link_ban2 [link:get] 0
|
|
|
|
|
- } else { who:chan $chan }
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-if {[setting:get $chan quitpartcolor]} {
|
|
|
|
|
- set handle [nick2hand $nick]
|
|
|
|
|
-foreach usr [userlist "-|AOMV" $chan] {
|
|
|
|
|
- set hst [getuser $usr hosts]
|
|
|
|
|
-foreach hhost $hst {
|
|
|
|
|
-if {[string match -nocase $hhost $banmask]} {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-if {![botisop $chan] && ![setting:get $chan xonly]} { return }
|
|
|
|
|
-if {[matchattr $handle $black(exceptflags) $chan]} { return }
|
|
|
|
|
- set bl_protect [blacktools:protect $nick $chan]
|
|
|
|
|
-if {$bl_protect == "1"} { return }
|
|
|
|
|
-if {[isbotnick $nick]} { return }
|
|
|
|
|
-foreach color $black(badcolors) {
|
|
|
|
|
-if {[setting:get $chan quitpartcolor] && [string match -nocase $color $arg]} {
|
|
|
|
|
- set found_color 1
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-if {$found_color == "1"} {
|
|
|
|
|
- blacktools:banner:2 $nick "ANTIBADQUITPART:COLOR" $chan $chan $host "0"
|
|
|
|
|
-if {[link:status $chan] == "1"} {
|
|
|
|
|
- foreach c [link:chan:get $chan] {
|
|
|
|
|
- blacktools:banner:2 $nick "ANTIBADQUITPART:COLOR" $c $c $host "1"
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-if {[setting:get $chan quitpartmsgflood]} {
|
|
|
|
|
- set handle [nick2hand $nick]
|
|
|
|
|
-foreach usr [userlist "-|AOMV" $chan] {
|
|
|
|
|
- set hst [getuser $usr hosts]
|
|
|
|
|
-foreach hhost $hst {
|
|
|
|
|
-if {[string match -nocase $hhost $banmask]} {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-if {![botisop $chan] && ![setting:get $chan xonly]} { return }
|
|
|
|
|
-if {[matchattr $handle $black(exceptflags) $chan]} { return }
|
|
|
|
|
- set bl_protect [blacktools:protect $nick $chan]
|
|
|
|
|
-if {$bl_protect == "1"} { return }
|
|
|
|
|
-if {[isbotnick $nick]} { return }
|
|
|
|
|
- set getlongchar [setting:get $chan quitpartmsgflood-char]
|
|
|
|
|
-if {$getlongchar == ""} { set getlongchar "$black(badquitpartmsgchar)" }
|
|
|
|
|
-if {[string length $arg] >= $getlongchar} {
|
|
|
|
|
- set found_msgflood 1
|
|
|
|
|
- }
|
|
|
|
|
-if {$found_msgflood == "1"} {
|
|
|
|
|
-if {$black(badquitpartmode) != ""} {
|
|
|
|
|
- putserv "MODE $chan +$black(badquitpartmode)"
|
|
|
|
|
- utimer $black(badquitpartsecunde) [list badquitpart:removemode $chan]
|
|
|
|
|
-}
|
|
|
|
|
- blacktools:banner:2 $nick "ANTIBADQUITPART:MSGFLOOD" $chan $chan $host "0"
|
|
|
|
|
-if {[link:status $chan] == "1"} {
|
|
|
|
|
- foreach c [link:chan:get $chan] {
|
|
|
|
|
- blacktools:banner:2 $nick "ANTIBADQUITPART:MSGFLOOD" $c $c $host "1"
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-proc badquitpart:removemode {chan} {
|
|
|
|
|
- global black
|
|
|
|
|
- putserv "MODE $chan -$black(badquitpartmode)"
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-proc badquitpartsign:protect {nick host hand chan arg} {
|
|
|
|
|
- badquitpart:protect $nick $host $hand $chan $arg
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-proc badquitpart:module {nick host hand chan arg} {
|
|
|
|
|
- global black lastbind
|
|
|
|
|
- set type 0
|
|
|
|
|
- set chan1 "$chan"
|
|
|
|
|
- set why [lindex [split $arg] 0]
|
|
|
|
|
- set except [join [lrange [split $arg] 1 end]]
|
|
|
|
|
- set number [lindex [split $arg] 1]
|
|
|
|
|
-if {[regexp {^[&#]} $why] && [matchattr $hand nmo|M $why]} {
|
|
|
|
|
- set chan "$why"
|
|
|
|
|
- set why [lindex [split $arg] 1]
|
|
|
|
|
- set except [join [lrange [split $arg] 2 end]]
|
|
|
|
|
- set number [lindex [split $arg] 2]
|
|
|
|
|
-}
|
|
|
|
|
- set return [blacktools:mychar $lastbind $hand]
|
|
|
|
|
-if {$return == "0"} {
|
|
|
|
|
- return
|
|
|
|
|
-}
|
|
|
|
|
- prot:module:process $nick $host $hand $chan $chan1 $why $except $type $number "badquitpart"
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-##############
|
|
|
|
|
-#########################################################################
|
|
|
|
|
-## END ##
|
|
|
|
|
-#########################################################################
|
|
|