Accueil





Utiliser une file d'attente avec une priorité nulle pour l'envoi de messages



Lorsque l'Eggdrop doit afficher d'un seul coup beaucoup de lignes de texte, il peut être intéressant d'utiliser une file d'attente à priorité nulle.
Cela signifie que n'importe quel autre message de l'Eggdrop placé dans n'importe quelle file d'attente sera prioritaire.
Les messages placés dans cette file d'attente spéciale ne seront envoyés que si toutes les autres files d'attente sont vides.


La procédure add_to_low_priority_queue attend 3 arguments :
mode : peut valoir PRIVMSG ou NOTICE
target : peut être un nick ou un chan
text : le texte à afficher



Variable à initialiser au début de votre script
variable special_queue_running 0


Procédures
############################################################################# ### Ajout d'un message dans la file d'attente à basse priorité. ############################################################################# proc add_to_low_priority_queue {mode target text} { variable special_queue variable special_queue_running lappend special_queue [list $mode $target $text] if { !$special_queue_running } { process_special_queue } } ############################################################################# ### Traitement de la file d'attente à basse priorité. ############################################################################# proc process_special_queue {} { variable special_queue variable special_queue_running # Si les autres files d'attente ne sont pas vides, on reporte à plus tard. if { [queuesize] > 0 } { utimer 2 process_special_queue return # Sinon, on envoie la ligne dans la file d'attente "help". } else { lassign [lindex $special_queue 0] mode target text puthelp "$mode $target :$text" # On élimine la 1ère ligne de la file d'attente car elle a été traitée. variable special_queue [lreplace $special_queue 0 0] # Si la file d'attente est vide, on arrête. if { ![llength $special_queue] } { variable special_queue_running 0 return # Sinon, on continue de la traiter. } else { variable special_queue_running 1 after 0 process_special_queue } } }



Utilisation
add_to_low_priority_queue PRIVMSG #testchan "Hello world!" Tcl:

©2005-2016 Menz Agitat