bind join - * join:add
proc join-add {nick uhost handle channel} {
global botnick voicelist
if {$nick == $botnick} { return }
if {([isop $nick $channel] || [isvoice $nick $channel])} { return }
if {([matchattr $handle m] || [matchattr $handle n] || [matchattr $handle o])} { return }
set voicelist "$voicelist $nick"
}
bind part - * part:del
proc part:del {nick uhost handle channelnel msg} {
global botnick voicelist
if {$nick == $botnick} { return }
if {([matchattr $handle m] || [matchattr $handle n] || [matchattr $handle o])} { return }
regsub -all "$nick" $voicelist "" voicelist
}
bind kick - * kick:del
proc kick:del {nick uhost handle channel victim reason} {
global botnick voicelist
if {$victim == $botnick} { return }
if {([isop $victim $channel] || [isvoice $victim $channel])} { return }
if {([matchattr $handle m] || [matchattr $handle n] || [matchattr $handle o])} { return }
regsub -all "$victim" $voicelist "" voicelist
}
bind nick - * nick:chg
proc nick:chg {nick uhost handle channelnel newnick} {
global botnick voicelist
if {$nick == $botnick} { return }
if {([isop $nick $channel] || [isvoice $nick $channel])} { return }
if {([matchattr $handle m] || [matchattr $handle n] || [matchattr $handle o])} { return }
regsub -all "$nick" $voicelist "" voicelist
set voicelist "$voicelist $newnick"
}
bind sign - * quit:del
proc quit:del {nick uhost handle channel reason} {
global botnick voicelist
if {$nick == $botnick} { return }
if {([isop $nick $channel] || [isvoice $nick $channel])} { return }
if {([matchattr $handle m] || [matchattr $handle n] || [matchattr $handle o])} { return }
regsub -all "$nick" $voicelist "" voicelist
}
bind pub n .next next:voice
proc next:voice {nick uhost handle channel arg} {
global voicelist
set who [lindex $voicelist 0]
if {$voicelist == "" } {
putserv "NOTICE $nick :Voice voicelist is empty."
return 1 }
if {[botisop $channel]} {
putserv "MODE $channel +v $who"
set voicelist [lrange $voicelist 1 end]
return 1 }
putserv "NOTICE $nick :I'm not oped on $channel. ~:o("
}
putlog ".next.. is loaded

Here is my code.. any sugestions, bugs or something?
