22/10/2009, 09:18
Peut-être que voici une solution:
Là, pas la peine de mettre un else: si acceesalon retourne 0, on sort de la procédure après le kick, donc ce qui est placé ensuite n'est exécuté que si acceesalon renvoit autre chose que 0.
Note que si la personne qui entre est l'eggdrop, je stoppe le test.
Dans cette procédure, j'initialise une valeur de retour par défaut: 0, donc accès interdit.
Ensuite, j'utilise un string first pour voir si le nick de l'utilisateur commence par le nick entré dans le fichier, ce qui permet de ne pas se poser de question sur les [away] et autres _pasla.
tcl
proc phenomAutorisation {nick uhost hand chan} {
if {$nick == $::botnick} { return 0 }
if {[acceesalon $nick]==0} {
putserv "PRIVMSG $::phenom(salon) :\00314Autorisation \0034° \00314Refusé\00314 \0034°\0034"
putserv "KICK $chan $nick : $::phenom(kickmsg)"
return 1
}
putserv "PRIVMSG $::phenom(salon) :\00314Autorisation \00303°\00314Accepté\00303° \00314pour le salon $::phenom(salon)"
pushmode $chan +v $nick
return 0
}
Là, pas la peine de mettre un else: si acceesalon retourne 0, on sort de la procédure après le kick, donc ce qui est placé ensuite n'est exécuté que si acceesalon renvoit autre chose que 0.
Note que si la personne qui entre est l'eggdrop, je stoppe le test.
tcl
proc acceesalon {nick} {
set access 0
set fa [open "Salon.db" r]
while {![eof $fa]} {
set get [gets $fa]
if {[string first [string tolower $get] [string tolower $nick]]==0} {
set access 1
}
close $fo
return $access
}
Dans cette procédure, j'initialise une valeur de retour par défaut: 0, donc accès interdit.
Ensuite, j'utilise un string first pour voir si le nick de l'utilisateur commence par le nick entré dans le fichier, ce qui permet de ne pas se poser de question sur les [away] et autres _pasla.