tcl
bind account - * [namespace current]::accountuser
proc accountuser {nick user hand chan {account ""}} {
if {![channel get $chan certif]} {
return
}
putlog "$nick : $user / $hand *$chan* -> $account"
if {$account==""} { return }
[namespace current]::joincertif $nick $user $hand $chan
}
bind join - * [namespace current]::joincertif
proc joincertif { nick host hand chan } {
if {![channel get $chan certif]} {
return
}
lassign [split $host "@"] ident uhost
putlog "getaccount => $nick = [getaccount $nick $chan]"
if {[getaccount $nick $chan] eq "*" || [isvoice $nick $chan]} { return }
::certUser::service:connect
set res [mysqlsel $::mysqlink "SELECT count(*) FROM `voiceauto` WHERE pseudo='$nick' and salon='$chan'" -list]
set nb [lindex $res 0]
if {$nb >= 1} {
putnow "PRIVMSG ChanServ voice $chan $nick"
}
::certUser::service:deconnect
}
sur le bind join, quand je suis identifié c'est nickel:
[02:26:35] getaccount => amandtest = amandtest
par contre depuis bind account quand je m'identifie pas à la connection et que je le fais après le join, quand il envoie à la proc joincertif, la fonction getaccount retourne * alors qu'il est bien identifié :
[02:28:25] amandtest : testamand@6D3C7BDB.83D19FC4.BEC71239.IP / * *#test* -> amandtest
[02:28:25] getaccount => amandtest = *
du coup, il entre dans la condition:
tcl
if {[getaccount $nick $chan] eq "*" || [isvoice $nick $chan]} { return }
je regarderais plus demain