Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #*******************#
- # Autorise.tcl V1.0 #
- #*******************#
- #*************************************#
- # Tcl d'autorisation Salon. #
- # Tcl en NameSpace message en msgcat. #
- # Utilisation du pushmode. #
- # Avec traitement de fichier. #
- #*************************************#
- namespace eval ::autorise {
- # Nous vérifions si ya le package requis pour le msgcat.
- package require msgcat
- # Nous mettons la langue de msgcat en français.
- ::msgcat::mclocale fr
- # Salon back ou va se situé l'autorise.
- set auto(back) "#back-geeks"
- # Nom du fichier ou seront les pseudos autorisé.
- set fichier(pseudo) "autorise_salon.db"
- # Les messages de msgcat.
- ::msgcat::mcset fr msg1 "\00314Authentification \0034° \0033Acceptée \0034°\037\0031pour %s\037\0031"
- ::msgcat::mcset fr msg2 "\00314Authentification \0034° \0034Refusé \0034°\037\0031pour %s\037\0031"
- ::msgcat::mcset fr kickmsg "\037\0031Accès refusé.\037 \0032->\0034Salon Privé\0032<-\037\0032"
- # Procédure de création du fichier Autorise.
- if {![file exist $fichier(pseudo)]} {
- set load [open $fichier(pseudo) w+]
- close $load
- putlog "\2Je crée le fichier $fichier(pseudo)\2"
- }
- # Procédure de join.
- bind join - "$::autorise::auto(back) *" [namespace current]::joinauto
- proc joinauto {nick host hand chan} {
- if [isbotnick $nick] return
- set userhost [getchanhost $nick]
- set userhost "*!*[string range $userhost [string first @ $userhost] e]"
- set autokick "[fread $fichier(pseudo)]"
- if {[lsearch -exact "$autokick" $userhost] != -1} {return 0}
- putquick "privmsg $auto(back) :[::msgcat::mc msg2 $nick]"
- putquick "MODE $chan +b $host"
- putquick "KICK $chan $nick :[::msgcat::mc kickmsg]"
- } else {
- # Ce else, il correspond à quoi ? Le if précédent fait un return 0
- putquick "MODE $chan +v $nick"
- putquick "privmsg $chan :[::msgcat::mc msg1]"
- }
- # Procédure D'ajout de pseudo Autorise.
- bind pub o ".+autorise" [namespace current]::+ajout
- proc +ajout { nick host hand arg } {
- set temp [lindex $arg 0]
- if {$temp == ""} {
- putserv "NOTICE $nick :Utilisation: .+autorise <pseudo>"
- putserv "NOTICE $nick :Exemple .+autorise alias_angelius"
- return 0
- }
- set autoajout "[fread $fichier(pseudo)]"
- if {[lsearch -exact "x $autoajout" "$temp"] == -1 } {
- lappend autoajout $temp
- fwrite $fichier(pseudo) $autoajout
- putserv "NOTICE $nick :\002$temp a été ajouté"
- return 0
- }
- putserv "NOTICE $nick :\002Erreur:\002 $temp est déjà autorisé"
- return 0
- }
- } # c'est pas ici que ça doit se fermer mais bien avant
- # Procédure de Del pseudo Autorise.
- bind pub o ".-autorise" [namespace current]::-ajout
- proc -ajout { nick host hand arg } {
- set temp [lindex $arg 0]
- if {$temp == ""} {
- putserv "NOTICE $nick :Utilisation: .-autorise <pseudo>"
- putserv "NOTICE $nick :Exemple: .-autorise alias_angelius"
- return 0
- }
- set autoajout "[fread $fichier(pseudo)]"
- set tmp ""
- foreach bb $autoajout {
- if {![string match $temp $bb]} {lappend tmp $bb}
- }
- fwrite $fichier(pseudo) $tmp
- putserv "NOTICE $nick :\002$temp supprimé des autorise"
- putserv "PRIVMSG $auto(back) : $temp est supprimé des pseudo autorisé"
- return 0
- }
- # Procédure de lecture/écriture de fichier.
- proc fread {fi} {
- set f [open $fi r]
- set t [gets $f]
- close $f
- return $t
- }
- proc fwrite {fi arg} {
- set f [open $fi w]
- puts $f $arg
- close $f
- }
- }
Add Comment
Please, Sign In to add comment