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
#5
J'ai bien avancé grâce à un bon coup de pouce de Crazy

Voici le code !

Je suis toutefois bloqué sur deux points :

- pour les personnes qui tapent la commande sans pseudo, ça retourne "puthelp "NOTICE $nick :Syntaxe: !vdmkick <pseudo>"", le problème c'est que ce message est générique toutefois la commande n'est pas toujours !vdmkick

- pour la commande !vdmunban qui ne fonctionne pas


tcl
namespace eval vdmodo {
 
    # emplacement de la base de données
    variable vdmododb "/home/portgasdkiba/vdmbot/databases/vdmmoderation.db"
    variable vdmododbfail "/home/portgasdkiba/vdmbot/databases/vdmmoderationfail.db"
 
    variable vdmodochan "#viedemerde"
 
    bind pub hv|hv "!vdmkick" [namespace current]::vdmkick
    bind pub hv|hv "!vdmban"  [namespace current]::vdmban
	bind pub hv|hv "!vdmunban" [namespace current]::vdmunban
 
    proc vdmkick {nick uhost handle chan text} {
        [namespace current]::act "kick" $nick $uhost $handle $chan $text
    }
 
    proc vdmban {nick uhost handle chan text} {
        [namespace current]::act "ban" $nick $uhost $handle $chan $text
    }
 
	proc vdmunban {nick uhost handle chan text} {
		[namespace current]::act  "unban" $nick $uhost $handle $chan $text
	}
 
    proc act {action nick uhost handle chan text} {
        set text [string trim $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])} {
            if {$action == "ban"} {
                puthelp "NOTICE $nick :$victim ne peut pas être banni de $chan car il a un accès."
                [namespace current]::save 0 "$nick a essayé de bannir $victim de $chan le [strftime %D] alors qu'il a un accès."
            } else {
                puthelp "NOTICE $nick :$victim ne peut pas être kické sur $chan car il a un accès."
                [namespace current]::save 0 "$nick a essayé de kicker $victim sur $chan le [strftime %D] alors qu'il a un accès."
            }
            return 0
        }
        if {$action == "ban"} {
            newchanban $chan $victim!*@* $nick "PAN ! $victim, tu es banni 24h, ça t'apprendra !"
            [namespace current]::save 1 "$nick a utilisé la commande !vdmban sur $victim le [strftime %D]"
        }elseif {$action == "kick"} {
			putkick $chan $victim "PAN ! $victim, dans ta tronche !"
			[namespace current]::save 1 "$nick a utilisé la commande !vdmkick sur $victim le [strftime %D]"
		}elseif {$action == "unban"} {
			killchanban $chan $victim!*@*
		}
        return 0
    }
 
    # procédure de sauvegarde
    proc save {success line} {
        if { $success == 1 } {
            set file $::vdmodo::vdmododb
        } else {
            set file $::vdmodo::vdmododbfail
        }
        set fo [open $file a]
        puts $fo $line
        close $fo
    }
 
}
 
putlog "VDM Modération chargé par KiBa adapté de la version Carton.tcl de CrazyCat"



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,677 10/03/2017, 14:43
Last Post: aliasangelius
  Moderation.tcl lesny 4 5,100 03/10/2011, 16:22
Last Post: CrazyCat
  TCL de modération Julien23 12 8,500 24/04/2010, 13:27
Last Post: aliasangelius
  Moderation.tcl Behemoth 1 6,101 29/11/2009, 19:36
Last Post: fedora

Forum Jump:


Users browsing this thread: 1 Guest(s)