mais si tu veux vraiment que la personne ai le level 100 minimum pour se auther
tcl
proc mon:auth {nick host hand arg} {
variable authed ;#on déclare la variable qui contiendra les utilisateurs identifié
#on ouvre le fichier et récupère les données qui sont dedans
set a [open users.db]
set users [split [read $a] "\n"]
close $a
#les données sont contenues dans $users
set salon [lindex $arg 0]
set pseudo [lindex $arg 1]
set pass [lindex $arg 2]
foreach u $users {
set c [lindex $u 0]
#on verifi que le salon correspond au salon contenue dans la ligne du fichier, sinon on saute a la boucle suivante
if ![string equal -nocase $c $salon] continue
#on controle si le pseudo correspond, sinon on saute la boucle suivante
set ps [lindex $u 1]
if ![string equal -nocase $ps $pseudo] continue
#on vérifie si le mot de passe correspond
set pa [lindex $u 2]
if ![string equal $pa $pass] continue
#pour finir on teste le host
set h [lindex $u 4]
if ![string match -nocase $h "$nick!$host"] continue
#arrivé la l utilisateur a remplis toutes les conditions pour s identifier donc on va le retenir
set level [lindex $u 3]
if {$level<100} continue
set authed($nick,$salon) $level
putserv "NOTICE $nick :Vous êtes identifié sur le salon $salon"
# et on fini la procédure
return
}
#sinon arrivé la l utilisateur n'as pas d'accès donc on lui dit
putserv "NOTICE $nick :Vous n'avez pas d'accès"
}