This command is built into the channels module, as well as kick as well as +ban[19:58:49] <Weirdo> .help kickban
[19:58:49] <Minako> [19:58] #Weirdo# help kickban
[19:58:49] <Minako> ### kickban [channel] [-|@]<nickname> [comment]
[19:58:49] <Minako> kicks a user off the channel and bans her by a reasonable host-
[19:58:49] <Minako> mask. your nickname will be attached to the ban in the bot's
[19:58:49] <Minako> internal ban list, and the ban will last for whatever is set in
[19:58:49] <Minako> ban-time -- only on this channel. use '.+ban' for a more
[19:58:49] <Minako> permanent ban which will be activated on every channel the bot
[19:58:49] <Minako> monitors. if you use a comment, that will also be attached to
[19:58:49] <Minako> the ban in the ban list, and used as the kick comment.
[19:58:49] <Minako> appending a prefix of ! or @ to a nickname changes the ban
[19:58:49] <Minako> mask used:
[19:58:49] <Minako> e.g. with a host of nick!ident@host.name.domain
[19:58:49] <Minako>
[19:58:49] <Minako> command banmask
[19:58:49] <Minako> .kickban nick *!*dent@*.name.domain
[19:58:49] <Minako> .kickban -nick *!*dent@host.name.domain
[19:58:49] <Minako> .kickban @nick *!*@host.name.domain
[19:58:49] <Minako>
[19:58:49] <Minako> with a host of nick!~ident@host.name.domain (strict-host set to 1)
[19:58:49] <Minako>
[19:58:49] <Minako> command banmask
[19:58:49] <Minako> .kickban nick *!*ident@*.name.domain
[19:58:49] <Minako> .kickban -nick *!*ident@host.name.domain
[19:58:49] <Minako>
[19:58:49] <Minako> see also: +ban, bans, stick
Code: Select all
set hide(chan) "#your_channel"
bind msg * kick hide:kick
bind msg * ban hide:ban
bind msg * kickban hide:kickban
# kick
proc hide:kick {nick host hand arg} {
global botnick hide
if {![isop $nick $hide(chan)] || ![botisop $hide(chan)]} { return }
if {[llength $arg] < 1} {
putserv "PRIVMSG $nick :\002Usage\002: kick <victim> \[reason\]"
putserv "PRIVMSG $nick :Notice that this works only for the $hide(chan) channel."
return }
set vict [lindex $arg 0]
set reas [lrange $arg 1 end]
if {$reas == "" } { set reas "request" }
if {$vict == $botnick} { return }
if {![onchan $vict $hide(chan)]} { return }
putkick $hide(chan) $vict $reas
return }
# ban
proc hide:ban {nick host hand arg} {
global botname hide
if {![isop $nick $hide(chan)] || ![botisop $hide(chan)]} { return }
if {![llength $arg] > 0 } {
putserv "PRIVMSG $nick :\002Usage\002: ban <mask>"
putserv "PRIVMSG $nick :Notice that this works only for the $hide(chan) channel."
return }
set ban [lrange $arg 0 end]
if {[string match "$ban" "$botname"]} {
putserv "PRIVMSG $nick :This ban matches me :P~"
return }
putserv "MODE $hide(chan) +b $ban"
return }
# kickban
proc hide:kickban {nick host hand arg} {
global botnick botname hide
if {![isop $nick $hide(chan)] || ![botisop $hide(chan)]} { return }
if {[llength $arg] < 1} {
putserv "PRIVMSG $nick :\002Usage\002: kickban <victim> \[reason\]"
putserv "PRIVMSG $nick :Notice that this works only for the $hide(chan) channel."
return }
set vict [lindex $arg 0]
set reas [lrange $arg 1 end]
if {$reas == "" } { set reas "request" }
if {$vict == $botnick} { return }
if {![onchan $vict $hide(chan)]} {
putserv "PRIVMSG $nick :$vict is not on $hide(chan)."
return }
set ban "*!*@[lindex [split [getchanhost $nick $hide(chan)] @] 1]"
if {[string match "$ban" "$botname"]} { set ban "*!*[getchanhost [lindex $arg 0] $hide(chan)]" }
putserv "MODE $hide(chan) +b $ban"
putkick $hide(chan) $vick $reas
return }
Code: Select all
# kickban
proc hide:kickban {nick host hand arg} {
global botnick hide
if {![validchan $hide(chan)] || ![isop $nick $hide(chan)] || ![botisop $hide(chan)]} { return }
if {[llength $arg] < 1} {
putserv "PRIVMSG $nick :\002Usage\002: kickban <victim> \[reason\]"
putserv "PRIVMSG $nick :Notice that this works only for the $hide(chan) channel."
return }
set vict [lindex $arg 0]
set reas [lrange $arg 1 end]
if {$reas == "" } { set reas "request" }
if {$vict == $botnick} { return }
if {![onchan $vict $hide(chan)]} {
putserv "PRIVMSG $nick :$vict is not on $hide(chan)."
return }
set ban "*!*[string trimleft [getchanhost [lindex $arg 0] $hide(chan)] ~]"
putserv "MODE $hide(chan) +b $ban"
putkick $hide(chan) $vict $reas
return }