Guest User

Untitled

a guest
Nov 29th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TCL 3.86 KB | None | 0 0
  1. #*******************#
  2. # Autorise.tcl V1.0 #
  3. #*******************#
  4.  
  5. #*************************************#
  6. # Tcl d'autorisation Salon.           #
  7. # Tcl en NameSpace message en msgcat. #
  8. # Utilisation du pushmode.            #
  9. # Avec traitement de fichier.         #
  10. #*************************************#
  11.  
  12. namespace eval ::autorise {
  13.    
  14.     # Nous vérifions si ya le package requis pour le msgcat.
  15.     package require msgcat
  16.     # Nous mettons la langue de msgcat en français.
  17.     ::msgcat::mclocale fr
  18.     # Salon back ou va se situé l'autorise.
  19.     set auto(back) "#back-geeks"
  20.     # Nom du fichier ou seront les pseudos autorisé.
  21.     set fichier(pseudo) "autorise_salon.db"
  22.     # Les messages de msgcat.
  23.     ::msgcat::mcset fr msg1 "\00314Authentification \0034° \0033Acceptée \0034°\037\0031pour %s\037\0031"
  24.     ::msgcat::mcset fr msg2 "\00314Authentification \0034° \0034Refusé \0034°\037\0031pour %s\037\0031"
  25.     ::msgcat::mcset fr kickmsg "\037\0031Accès refusé.\037 \0032->\0034Salon Privé\0032<-\037\0032"
  26.    
  27.     # Procédure de création du fichier Autorise.
  28.     if {![file exist $fichier(pseudo)]} {
  29.         set load [open $fichier(pseudo) w+]
  30.         close $load
  31.         putlog "\2Je crée le fichier $fichier(pseudo)\2"
  32.     }
  33.    
  34.     # Procédure de join.
  35.     bind join - "$::autorise::auto(back) *" [namespace current]::joinauto
  36.     proc joinauto {nick host hand chan} {
  37.         if [isbotnick $nick] return
  38.         set userhost [getchanhost $nick]
  39.         set userhost "*!*[string range $userhost [string first @ $userhost] e]"
  40.         set autokick "[fread $fichier(pseudo)]"
  41.         if {[lsearch -exact "$autokick" $userhost] != -1} {return 0}
  42.             putquick "privmsg $auto(back) :[::msgcat::mc msg2 $nick]"
  43.             putquick "MODE $chan +b $host"
  44.             putquick "KICK $chan $nick :[::msgcat::mc kickmsg]"
  45.     } else {
  46.     # Ce else, il correspond à quoi ? Le if précédent fait un return 0
  47.         putquick "MODE $chan +v $nick"
  48.         putquick "privmsg $chan :[::msgcat::mc msg1]"
  49.     }
  50.    
  51.     # Procédure D'ajout de pseudo Autorise.
  52.     bind pub o ".+autorise" [namespace current]::+ajout
  53.     proc +ajout { nick host hand arg } {
  54.         set temp [lindex $arg 0]
  55.         if {$temp == ""} {
  56.             putserv "NOTICE $nick :Utilisation: .+autorise <pseudo>"
  57.             putserv "NOTICE $nick :Exemple .+autorise alias_angelius"
  58.             return 0
  59.         }
  60.         set autoajout "[fread $fichier(pseudo)]"
  61.         if {[lsearch -exact "x $autoajout" "$temp"] == -1 } {
  62.             lappend autoajout $temp
  63.             fwrite $fichier(pseudo) $autoajout
  64.             putserv "NOTICE $nick :\002$temp a été ajouté"
  65.             return 0
  66.         }
  67.         putserv "NOTICE $nick :\002Erreur:\002 $temp est déjà autorisé"
  68.         return 0
  69.     }
  70. } # c'est pas ici que ça doit se fermer mais bien avant
  71.     # Procédure de Del pseudo Autorise.
  72.     bind pub o ".-autorise" [namespace current]::-ajout
  73.     proc -ajout { nick host hand arg } {
  74.         set temp [lindex $arg 0]
  75.         if {$temp == ""} {
  76.             putserv "NOTICE $nick :Utilisation: .-autorise <pseudo>"
  77.             putserv "NOTICE $nick :Exemple: .-autorise alias_angelius"
  78.             return 0
  79.         }
  80.         set autoajout "[fread $fichier(pseudo)]"
  81.         set tmp ""
  82.         foreach bb $autoajout {
  83.             if {![string match $temp $bb]} {lappend tmp $bb}
  84.         }
  85.         fwrite $fichier(pseudo) $tmp
  86.         putserv "NOTICE $nick :\002$temp supprimé des autorise"
  87.         putserv "PRIVMSG $auto(back) : $temp est supprimé des pseudo autorisé"
  88.         return 0
  89.     }
  90.     # Procédure de lecture/écriture de fichier.
  91.     proc fread {fi} {
  92.     set f [open $fi r]
  93.     set t [gets $f]
  94.     close $f
  95.     return $t
  96.     }
  97.     proc fwrite {fi arg} {
  98.         set f [open $fi w]
  99.         puts $f $arg
  100.         close $f
  101.     }
  102. }
Add Comment
Please, Sign In to add comment