Ca tient en 2 procédures:
- whoisAll est appelée toutes les 5 minutes, elle fait un /whois sur toutes les personnes dans l'userlist de l'eggdrop qui ne sont pas sur le canal,
- whoisInvite réagit au raw 311 (RPL_WHOISUSER)
Deux gros soucis dans ce script simpliste (je ne donne que la mécanique là):
- risque de flood, que ce soit dans les /whois ou dans les réponses serveur,
- aucun contrôle dans la procédure d'invit
loulou7593 a écrit :Voila en fait ce serais pas mal ca quand la personne se connecte au server que ca lui envoi une invite.
/NOTIFY (commande serveur) peut t'aider.
Mon Eggdrop l'utilise pour réinviter sur un chan les utilisateurs qui partent en ping timeout ou en connection reset by peer aussitôt qu'ils se reconnectent au serveur.
# Canal où on doit inviterset back "#chan"
# Utilisation d'un bind cron pour faire le /whois # toutes les 5 minutes
bind cron - "*/5 * * * *" whoisAll
proc whoisAll { mm hh dd mo xx }{foreach cuser [userlist]{if{![onchan $cuser$::back]}{
putserv "WHOIS $cuser"}}}
# Utilisation du raw 311
bind raw - 311 whoisInvite
proc whoisInvite {from keyword text}{set nickname [lindex[split$text]1]if{![onchan $nickname$::back]}{
putserv "INVITE $nickname $::back"}}