set x(channels) "#channel1 #channel2 #channel3"
bind kick - "*" kick:extract
bind mode - "* +b" xstuff:ban
bind need - * xstuff:need
# Remuser
proc kick:extract {nick uh hand chan vict reas} {
global botnick
if {$nick != "X"} { return }
set kicker [string trim [lindex [split $reas] 0] {()}]
if {$vict == $botnick} {
putserv "PRIVMSG X :remuser $chan ${kicker}" }
return }
# Unban
proc xstuff:ban {nick uhost hand chan mc ban} {
global botnick botname
set bmask "*!*@[lindex [split $uhost @] 1]"
if {[string match "$ban" "$botname"] && [botisop $chan]} {
if {[string match "$bmask" "$botname"]} { set bmask [maskhost *!*[string trimleft $uhost ~]]}
putserv "MODE $chan -bo+b $ban $nick $bmask"
putserv "KICK $chan $nick :\002Don't ban me you twit!\002" }
return }
# Needs
proc xstuff:need {channel type} {
global botnick x
if {[lsearch -exact $x(channels) $channel] == -1} {return 0}
if {$type == "op" && [onchan X $channel]} { putserv "PRIVMSG X :op $channel $botnick" }
if {$type == "unban"} { putserv "PRIVMSG X :unban $channel $botnick" }
if {$type == "invite"} { putserv "PRIVMSG X :invite $channel $botnick" }
if {$type == "limit"} { putserv "PRIVMSG X :invite $channel $botnick" }
return 1 }
See this.
