Le but est donc, si je comprends bien, de kicker une personne sauf si elle est dans la liste ?
Le parcours du tableau est un peu excessif alors que tu peux rechercher directement dans la liste, et en plus il est faux: tu ne compares rien dans ton "string match", et il y a un problème de logique.
Imaginons que tu fasses !xkick systak, lorsque tu vas parcourir ton tableau, le premier item rencontré sera Orion, donc rien n'interdit (à ce moment) de kicker systak, ce qui sera fait. Le second bloquera (mais trop tard) et le troisième autorisera (et un kick sera fait sur un utilisateur déjà absent).
Voici plutôt ce que j'imagine:
Le parcours du tableau est un peu excessif alors que tu peux rechercher directement dans la liste, et en plus il est faux: tu ne compares rien dans ton "string match", et il y a un problème de logique.
Imaginons que tu fasses !xkick systak, lorsque tu vas parcourir ton tableau, le premier item rencontré sera Orion, donc rien n'interdit (à ce moment) de kicker systak, ce qui sera fait. Le second bloquera (mais trop tard) et le troisième autorisera (et un kick sera fait sur un utilisateur déjà absent).
Voici plutôt ce que j'imagine:
tcl
set nadmin "Orion,systak,test"
bind pub - !xkick kick
proc kick {nick uhost hand chan arg} {
set n0 [string tolower [lindex $arg 0]]
set protected [split [string tolower $::nadmin] ","]
if {[lsearch $protected $n0] == -1} {
putquick "kick $chan $n0 kicked"
}
}