Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


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

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 :)


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

Possibly Related Threads…
Thread Author Replies Views Last Post
  [Résolu] moderation SQL aliasangelius 15 7,625 10/03/2017, 14:43
Last Post: aliasangelius
  Moderation.tcl lesny 4 5,074 03/10/2011, 16:22
Last Post: CrazyCat
  TCL de modération Julien23 12 8,461 24/04/2010, 13:27
Last Post: aliasangelius
  Moderation.tcl Behemoth 1 6,080 29/11/2009, 19:36
Last Post: fedora

Forum Jump:


Users browsing this thread: 1 Guest(s)