Alternative à getchanmode car celui-ci ne voit que les modes du RFC1459
#1
Démonstration
Code :
getchanmodes #testchan
Tcl: +Ctrn
* MenzAgitat sets mode: +mQS
getchanmodes #testchan
Tcl:+mCtrn

Dans cet exemple, on voit que les modes Q et S sont complètement ignorés par getchanmode.
Voici donc une méthode alternative pour récupérer les modes d'un chan.

Variable à déclarer
tcl
array set getchanmodes_session {}



Ceci est à mettre à l'endroit où l'on veut récupérer les modes d'un chan
tcl
	variable getchanmodes_session([md5 $chan]) [::tcl::dict::create "variable1" $variable1 "variable2" $variable2]
	putserv "MODE $chan"
}


Ajoutez au dict toutes les variables que vous pourriez avoir besoin de récupérer après avoir reçu les modes du chan.
$variable1 et $variable2 ne sont là que pour l'exemple.

Vous devez terminer la procédure à cet endroit, comme l'indique le } que j'ai volontairement ajouté à la fin, puisqu'on attend de connaître les modes du chan avant de continuer.

Ajoutez ensuite cette procédure qui s'occupera de réceptionner la réponse du serveur
tcl
proc getchanmodes {sender raw data} {
	variable getchanmodes_session
	set chan [lindex $data 1]
	set chan_hash [md5 $chan]
	if { [::tcl::info::exists getchanmodes_session($chan_hash)] } {
		set variable1 [::tcl::dict::get $getchanmodes_session($chan_hash) "variable1"]
		set variable2 [::tcl::dict::get $getchanmodes_session($chan_hash) "variable2"]
		unset getchanmodes_session($chan_hash)
		set chanmodes [join [lrange [split $data] 2 end]]
		suite_des_operations $chan $chanmodes $variable1 $variable2
	}
}


Cette procédure récupère les modes qu'on a demandé et appelle la proc suite_des_operations qui contient la suite de votre code, en lui passant en paramètre $chanmodes (qui contient les modes que l'on souhaitait connaître), ainsi que les autres paramètres que vous aurez éventuellement choisi de transmettre d'une proc à une autre comme $arg1, $arg2, ...

Pour finir, vous devez ajouter ce bind
tcl
bind raw - 324 getchanmodes



Source : http://www.boulets.oqp.me/tcl/routines/t...-0017.html
Répondre Avertir


Messages dans ce sujet
Alternative à getchanmode car celui-ci ne voit que les modes du RFC1459 - par MenzAgitat - 09/10/2013, 22:25

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté