[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"


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é