############################################################################ # Nom du fichier: aide_msg.tcl # Écrit par: Alocin (Alocin@igt.net) ############################################################################ set bindsmsg "!quand -v quiestla quiestsurlecanal !horaire !demission whois note notes pass ident op !op voice deop devoice !chat !info !pol !ref" set messagepriverepete "" bind msgm - * les_msgs proc les_msgs {nick host hand text} { global bindsmsg messagepriverepete foreach lebind $bindsmsg { if {[string tolower [lindex $text 0]] == $lebind} { return 0 } } if {$hand == "*"} { if {[string match "* $host $text *" " $messagepriverepete "] | [string match "* 2x $host *" " $messagepriverepete "]} { putloglev 2 #Aide "5Message! $nick ->15 -*- répétition -*- (ignoré pour 1 minute)" newignore "$nick!*@*" "AideBot" "Joue au perroquet en privé, protection 1 minute" 1 } else { putloglev 2 #Aide "5Message! $nick ->14 $text" if [string match "* $host *" " $messagepriverepete "] { lappend messagepriverepete "2x $host $text" } else { lappend messagepriverepete "$host $text" putbot Aide "msg $nick Désolé $nick, mais AideBot (et moi) ne sommes que des robots, nous ne pouvons donc pas converser avec toi... Pose ta question sur le canal -OU- fais 2/dcc chat Aide pour avoir de l'aide automatisée." } utimer 30 { set messagepriverepete [lrange $messagepriverepete 1 end] } } } } foreach lebind $bindsmsg { bind msg - $lebind bind_msg } proc bind_msg {nick uhost hand args} { global lastbind dernier_masque set commande [string tolower $lastbind] if {$commande == "!quand"} { if {[lindex $args 0] != ""} { putbot Aide "msg $nick [vu_quand [lindex $args 0] 0]" return 1 } } elseif {$commande == "quiestla"} { set liste "" foreach user [dcclist] { if {[lindex $user 3] == "CHAT"} { append liste [idx2hand [lindex $user 0]] " " } } putserv "notice $nick :Sont sur AideBot -> $liste" return 0 } elseif {$commande == "quiestsurlecanal"} { set liste "" foreach user [chanlist #aide] { append liste "$user " } putserv "notice $nick :Sont sur #Aide -> $liste" return 0 } elseif {$commande == "!chat"} { if [matchattr $hand p] { putserv "PRIVMSG $nick :\001DCC CHAT chat [myip] 4000\001" return 1 } } elseif {$commande == "!demission"} { if {[matchattr $hand W] && [passwdok $hand $args]} { if {[unixtime] > [expr [lindex [getuser $hand xtra demission] 0] + 86400]} { chattr $hand -W if ![matchattr $hand S] { chattr $hand +px|v #Aide } putbot Aide "msg $nick Oki, démission annulée. Accès restauré sur AideBot." putlog "$nick!$uhost ($hand) a annulé sa démission." } else { putbot Aide "msg $nick Vous devez attendre 24h pour annuler la démission." } } else { putlog "$nick!$uhost ($hand) a tenté d'annuler une démission !?" } return 0 } elseif {$commande == "!pol"} { if [matchattr $hand AGTCOJHRPMN] { dccsend "/aide/ftp/aide/politiques.txt" $nick return 1 } } elseif {$commande == "!ref"} { if [matchattr $hand AGTCOJHRPMN] { dccsend "/aide/ftp/aide/references.txt" $nick return 1 } } elseif {$commande == "!info"} { if {$hand != "*"} { putbot Aide "msg $nick $nick ($hand) [dire_niveau $hand]" if [matchattr $hand S] { putbot Aide "msg $nick *> Suspendu par: [getuser $hand XTRA susp_auteur] | Début: [getuser $hand XTRA susp_debut] | Durée: [getuser $hand XTRA susp_duree] heures." putbot Aide "msg $nick *> Raison: [getuser $hand XTRA susp_raison]" putbot Aide "msg $nick *> Temps restant: [getuser $hand XTRA susp_reste] heures." } if [matchattr $hand N] { set resteval [expr [getuser $hand xtra date] + 2592000 - [unixtime]] if {[llength [getuser $hand xtra EVAL]] > 4} { set eval 0 foreach item [getuser $hand xtra EVAL] { set eval [expr $eval + [lindex $item 1]] } set eval [expr 20.0 * $eval / [llength [getuser $hand xtra EVAL]]] if {$eval > 80} { set eval "Très bien (Continue comme ça, tu fais du bon boulot)" } elseif {$eval > 70} { set eval "Adéquat (C'est bien, quoi qu'il y a encore place un petit peu d'amélioration)" } elseif {$eval > 60} { set eval "Limite (Tu as des chances d'être accepté, mais il serait sage de voir à améliorer tes méthodes, tu es sur la limite actuellement)" } else { set eval "Insuffisant (Il semble y avoir un problème, actuellement, tu ne passerais pas ton évaluation, il va falloir redoubler d'efforts pour te faire accepter et modifier tes méthodes!)" } } else { set eval "(Pas encore concluante)" } if {$resteval > 0} { putbot Aide "msg $nick *> Il reste encore [dire_delai $resteval] à ta période d'évaluation." putbot Aide "msg $nick *> Ton évaluation actuelle: $eval" } else { putbot Aide "msg $nick *> Ta période d'évaluation est terminée. Un admin va te contacter sous peu." } } return 1 } } elseif {$commande == "-v"} { pushmode #aide -v $nick } elseif {$commande == "!horaire"} { putbot ProfBot "horaire $nick" } elseif {($commande == "!op") | ($commande == "op")} { if {![matchattr $hand o|o #Aide] & [onchan $nick #Aide]} { petitban $nick #Aide "Arf! !op ? hop !" } return 0 } elseif {$commande == "!masque"} { set canal "#Aide" set host [getchanhost $nick $canal] set adresse "$nick!$host" set masque [trouver_masque $nick $canal] if {$masque != ""} { if {[lindex $dernier_masque 0] != $nick} { set dernier_masque "$nick $nick" m $nick 2 "Ton adresse est $adresse, donc ton masque d'adresse (user@host) est: $masque" return 1 } } } elseif {[string index $commande 0] == "v"} { verify $nick $args } else { } }