[Script] Modération par les voices
#1
Bonjour à tous Smile

Je souhaite faire un script tcl qui pourrait permettre la modération par les voices.

A partir des flags que j'aurai ajouté à mes voices (hv) je souhaiterai leur donner la possibilité d'utiliser 2 commandes. La première qui sera le kick et la deuxième le ban bien évidemment...

Mais je voudrai pouvoir stocker dans un fichier .db le voice qui a utilisé la commande et quelle commande il a utilisé et sur quel pseudo.

Je ne rencontre pas trop de problème pour les premières étapes, c'est pour la partie écriture dans le fichier que j'ai plus de mal...

Voici le code :

tcl
namespace eval vdmodo { 
 
   # emplacement de la base de données 
   variable vdmododb "/home/portgasdkiba/vdmbot/databases/carton.db"
 
   variable punish 
 
   variable vdmodochan "#viedemerde" 
 
   bind pub hv|hv "!vdmkick" [namespace current]::vdmkick 
 
   proc vdmkick {nick uhost handle chan text} { 
      if { [string tolower $chan] ne [string tolower $::vdmodo::vdmodochan] } { 
         putlog "Script non actif sur $chan"
		 puthelp "NOTICE $nick :Script non actif sur $chan !"
         return 0; 
      } 
      set args [split $text] 
      if {$args=="" || [llength [split $args]]!=1} { 
         # Oubli de la victime ? 
         puthelp "NOTICE $nick :Syntaxe: !vdmkick <pseudo>" 
         return 0 
      } 
      set victim [lindex [split $args] 0] 
      if {![onchan $victim $chan]} { 
         # victime pas sur le canal 
         puthelp "NOTICE $nick :$victim n'est pas sur $chan" 
         return 0 
      } 
      if {[isvoice $victim $chan]||[ishalfop $victim $chan]||[isop $victim $chan] || (![matchattr $handle gv $chan]&&![matchattr $handle hp])} {
         puthelp "NOTICE $nick :$victim ne peut pas être kické sur $chan car il a un accès." 
         putlog "$nick vient d'essayer de kicker $victim sur $chan" 
		 putlog "flags gv pour $handle sur $chan : [matchattr $handle gv $chan]"
		 putlog "flags hp global pour $handle : [matchattr $handle hp]"
         return 0 
      } 
      if {![info exists ::vdmodo::punish($chan$victim)]} { 
         # Pas de précédent carton, on l'ajoute dans le fichier et on kick 
         set ::vdmodo::punish($nick a utilisé la commande !vdmkick sur $victim) 
         putkick $chan $victim "PAN ! $victim, dans ta tronche !" 
      }
	  
      # Et maintenant, sauvegarde 
      ::vdmodo::save 
      return 0 
   } 

   # procédure de sauvegarde 
   proc save {} { 
      set fo [open $::vdmodo::vdmododb w] 
      foreach cv [array names ::vdmodo::punish] { 
         puts $fo "$cv $::vdmodo::punish($cv)" 
      } 
      close $fo 
   } 

   # chargement de la base 
   proc load {} { 
      if {![file exists $::vdmodo::vdmododb]} { 
         return 0 
      } 
      set fi [open $::vdmodo::vdmododb r] 
      set cartons [read -nonewline $fi] 
      close $fi 
      foreach carton [split $cartons "n"] { 
         set fields [split $carton " "] 
         set ::vdmodo::punish([lindex $fields 0]) [lindex $fields 1] 
      } 
   } 
} 
 
::vdmodo::load 
 
putlog "VDM Modération chargé par KiBa adapté de la version Carton.tcl de CrazyCat"



Après ça il faudra que je fasse la même chose avec !vdmban

Merci beaucoup pour l'aide Smile
Répondre Avertir


Messages dans ce sujet
Modération par les voices - par KiBa - 07/05/2014, 15:44
RE: Modération par les voices - par KiBa - 03/06/2014, 16:39
RE: Modération par les voices - par CrazyCat - 04/06/2014, 09:48
RE: Modération par les voices - par KiBa - 05/06/2014, 10:22
RE: Modération par les voices - par KiBa - 11/06/2014, 12:04
RE: Modération par les voices - par CrazyCat - 11/06/2014, 12:35
RE: Modération par les voices - par KiBa - 11/06/2014, 14:18
RE: Modération par les voices - par CrazyCat - 11/06/2014, 14:42

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté