# +-------------------------------------------------------------------------------------+ # | | # | a&a (light) script v0.03.02 Alpha | # | | # +-------------------------------------------------------------------------------------+ # | | # | Creative Commons Copyright 2002-2005 by universalia aka aqwzsx | # | http://ascript.name | # | | # +-------------------------------------------------------------------------------------+ ############ Command Binds ########################### a:command -add kick pub:kick 1024 539 |l a:command -add ban pub:ban 1023 538 |l a:command -add unban pub:unban 1022 537 |l a:command -add invite pub:invite 1028 547 |l ############ Command Procs ########################### proc pub:kick {hand chan args x mix} { global botnick set whom [lindex $args 0] set reason [join [lrange $args 1 end]] set what [::stats::channel -get $chan kick-reason] if { $reason == "" && $what == "" } { set reason "No reason supplied" } else {set reason "$what"} if {![botisop $chan]} { a:tell $x 96 $chan ; return "FAILED: opless"} if {![string length $whom]} { a:usage $x kick ; return "FAILED: not all parameters specified"} if {![onchan $whom]} { a:tell $x 103 "$whom" ; return "FAILED: nick is not on chan ($whom)"} if {![a:level $x $chan $whom [nick2hand $whom] [a:translate $hand $chan 222 kick]]} { return "FAILED: target access is higher" } set reason [a:translate $hand $chan 17 "($hand/\002[lindex $x 0]\002) $reason"] putserv "KICK $chan $whom :$reason" return "$whom" } proc pub:ban {hand chan args x mix} { global botnick owner set whom [lindex $args 0] set time [lindex $args 1] set reason [lrange $args 2 end] set option none set add "" set what [::stats::channel -get $chan breason] if { $whom == ""} { a:usage $x ban ; return "FAILED: not all parameters specified"} if {![botisop $chan]} { a:tell $x 96 $chan; return "FAILED: opless"} if { [string map {* {} . {} ! {} @ {} ? {}} $whom] == ""} {a:tell $x 190; return "FAILED: mass ban caution"} if {![a:level $x $chan $whom [nick2hand $whom] [a:translate $hand $chan 222 ban]]} { return "FAILED: target access is higher" } if {![onchan $whom $chan]} { set theban $whom; a:tell $x 95} else { set theban "*!*[string range [getchanhost $whom $chan] [string first @ [getchanhost $whom $chan]] end]" } if {![a:check -digit $time]} { set time "[channel get $chan ban-time]m"; set reason "[lrange $args 1 end]"} if { [string equal [lindex $reason 0] sticky] } { set option sticky; set add "\[sticky\] "; set reason [lrange $reason 1 end]} if { $reason == "" && $what == ""} { set reason "No reason supplied" } else {set reason "$what"} if { [string equal [lindex $reason 0] global] && [check:N:gl $hand]} { if {![llength [lrange $reason 1 end]]} { set reason "global No reason supplied" } set reason [join [a:translate $hand $chan 111 "$hand/\002[lindex $x 0]\002 $time ${add}\[globally\] [lrange $reason 1 end]"]] newban $theban $hand $reason $time $option; return "global_$whom for $time, $reason" } else { set reason [join [a:translate $hand $chan 111 "$hand/\002[lindex $x 0]\002 $time ${add}$reason"]] newchanban $chan $theban $hand $reason $time $option ; return "$whom $reason" } } proc pub:unban {hand chan args x mix} { set theban [lindex $args 0] set chanban 0 set botban 0 set go 1 if {![string length $theban]} { a:usage $x unban ; return "FAILED: not all parameters specified"} if { [string equal -nocase [lindex $args 1] global] && [check:n:gl $hand]} { foreach b [banlist] { set a [lindex $b 0] ; if {[string match -nocase $theban $a]} {killban $a ; incr botban }}} else { foreach b [banlist $chan] { set a [lindex $b 0] ; if {[string match -nocase $theban $a]} {killchanban $chan $a ; incr botban }; set go 0} } if { [botisop $chan]} { foreach b [chanbans $chan] {set b [lindex $b 0]; if { [string match -nocase $theban $b] && ($go || ![isban $b]) } {incr chanban; pushmode $chan -b $b}} } else {a:tell $x 132 "$chan"} if {($botban > 0) || ($chanban > 0)} { a:tell $x 115 "$botban $chanban" ; return "$theban, $botban BotBAN \& $chanban ChanBAN"} { a:tell $x 114 ; return "FAILED: no such ban ($theban)" } } proc pub:invite {hand chan args x mix} { set whom [lindex $args 0] if { $whom=="" || $whom=="me"} { set whom [lindex $x 0] } if {![botisop $chan]} { a:tell $x 96 $chan; return "FAILED: bot is not opped" } if { [onchan $whom $chan]} { a:tell $x 53 "$whom $chan" ; return "FAILED: nick already on chan" } puthelp "invite $whom $chan" a:tell $x 52 "$whom $chan" return "$whom $chan" } return "local l commands"