10/01/2018, 13:28
Salut,
tcl
#*******************#
# Autorise.tcl V1.0 #
#*******************#
# Description du code TCL.
#***********************************#
# TCL en NameSpace. #
# Utilisation de msgcat. #
#***********************************#
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.
variable salons "#staff"
# Nom du fichier ou seront les pseudos autorisé.
variable fichiers "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->\0034 Vous n'avez pas l'autorisation d'être ici. Ou retire ton extension merci. \0032<-\037\0032"
# Procédure de création du fichier Autorise.
if {![file exists $fichiers]} {
set load [open $fichiers w+]
close $load
putlog "\2Je crée le fichier $fichiers\2"
}
# Procédure de join.
bind join - "$::autorise::salons *" [namespace current]::joinauto
proc joinauto {nick host hand chan} {
variable salons
set k [lindex [split $nick |] 0]
set vnick $nick
if [isbotnick $nick] return
if {[acceesalon $nick]==0} {
putquick "privmsg $salons :[::msgcat::mc msg2 $nick]"
putquick "kick $vnick $salons :[::msgcat::mc kickmsg]"
return 1
}
putquick "privmsg $salons :[::msgcat::mc msg1 $nick]"
pushmode $salons +v $nick
pushmode $salons +o $nick
return 0
}
# Procédure d'ajout de pseudo autorise.
bind pub o ".+autorise" [namespace current]::+ajout
proc +ajout { nick host hand chan arg } {
variable fichiers
variable salons
set temp [lindex $arg 0]
if {$temp == ""} {
putserv "NOTICE $nick :Utilisation: .+autorise <pseudo>"
putserv "NOTICE $nick :Exemple .+autorise $nick"
return 0
}
set lis "[fread $fichiers]"
if {[lsearch -exact "x $fichiers" "$temp"]!="0"} {
lappend lis $temp
fwrite $fichiers $temp
putserv "NOTICE $nick :\002$temp\002 \0034a été ajouté\0034"
putserv "PRIVMSG $salons :\002$temp\002 \0034est ajouté au pseudos autorisé\0034"
return 0
}
putserv "NOTICE $nick :\002Erreur:\002$temp\002 \0034est déjà autorisé\0034"
return 0
}
# Procédure de suppression de pseudo autorise.
bind pub o ".-autorise" [namespace current]::-ajout
proc -ajout { nick host hand chan arg } {
variable fichiers
variable salons
set temp [lindex $arg 0]
if {$temp == ""} {
putserv "NOTICE $nick :Utilisation: .-autorise <pseudo>"
putserv "NOTICE $nick :Exemple: .-autorise $nick"
return 0
}
set autoajout "[fread $fichiers]"
set tmp ""
foreach bb $autoajout {
if {![string match $temp $bb]} {lappend tmp $bb}
}
fdel $fichiers $tmp
putserv "NOTICE $nick :\002$temp\002 \0034supprimé des autorisé\0034"
putserv "PRIVMSG $salons :\002$temp\002 \0034est supprimé des pseudo autorisé\0034"
return 0
}
# Procédure pour voir la liste des autorise.
bind pub o ".autorise" [namespace current]::auto
proc auto { nick host hand chan arg } {
variable fichiers
variable salons
set fp [open $fichiers "r"]
set fc -1
putserv "notice $nick :\037\00300,01 -> Liste des autorise. <-\037\003"
while {![eof $fp]} {
set data [gets $fp]
incr fc
if {$data !=""} {
putserv "notice $nick :\0031\[ \0034$data\0031\0031 ]\0031"
}
unset data
}
close $fp
putserv "notice $nick :\037\00300,01 -> Fin de la liste des autorise. <-\037\003"
}
# Ne pas toucher Systeme Proc !!
proc acceesalon {nick} {
variable fichiers
set fa [open $fichiers r]
set access 0
while { ![eof $fa]} {
set ligne [gets $fa]
if {[string tolower $nick] == [string tolower $ligne]} {
set access 1
}
}
close $fa
return $access
}
# Procédure d'écriture de fichier.
proc fwrite {fi arg} {
set f [open $fi a]
puts $f $arg
close $f
}
# Procédure de suppression de fichier.
proc fdel {fi arg} {
set f [open $fi w]
puts $f $arg
close $f
}
# Procédure de lecture de fichier.
proc fread {fi} {
set f [open $fi r]
set t [gets $f]
close $f
return $t
}
}
putlog "\002\0034Chargement.. \002\037\0031Autorise.tcl V1.0 by alias_angelius\037\0031"