autovoice
#1
Bonjour,

On ma demander un autovoice activable sur salon
Donc qui nécessite pas de mettre #salon dans un (set salon blabla "#chan")

Alors je le mets ici des fois qu'il pourrait être utile à des personnes qui cherchent ce type de code.

PS : sur salon pour l'activé suffit de tapez : !von
Pour le désactivé tapez : !voff

Voici le code :

TCL
namespace eval ::autov {
setudef flag VV
 
bind pub o "!von" [namespace current]::von
proc von { nick host hand chan arg } {
    if {[channel get $chan VV] == 0} {
         channel set $chan +VV
         putquick "PRIVMSG $chan :Auto-Voice Activé !"
         foreach von [chanlist $chan] { if [isop $von $chan] continue; pushmode $chan +v $von }
    } else {
         putquick "PRIVMSG $chan :Auto-Voice déjà Activé !"
    }
}
 
bind pub o "!voff" [namespace current]::voff
proc voff { nick host hand chan arg } {
    if {[channel get $chan VV] != 0} {
         channel set $chan -VV
         putquick "PRIVMSG $chan :Auto-Voice Désactivé !"
         foreach voff [chanlist $chan] { if [isop $voff $chan] continue; pushmode $chan -v $voff }
    } else {
         putquick "PRIVMSG $chan :Auto-Voice déjà Désactivé !"
    }
}
 
bind join - "*" [namespace current]::autovoice
proc autovoice { nick uhost handle chan } {
if {[channel get $chan VV]==0} { return; }
      pushmode $chan +v $nick
    }
}


Répondre Avertir
#2
Tu as suivi mon conseil et ajouté le (de)voice des personnes présentes, c'est bien.
Par contre, je ne comprends pas l'intérêt des "::" devant le nom du namespace lors du namespace eval.
Répondre
#3
Oui j'ai suivi ton conseil ta vus :p

Heu oui j’avais dans l'idée de faire le code autrement lors des appels de procédure donc j’avais mis le :: mais bon après j'ai laissé comme ça sans les retiré désolé.

Donc oui les retiré serait aussi bien car ils servent à rien Smile
Répondre Avertir
#4
salut,
Citation :Par contre, je ne comprends pas l'intérêt des "::" devant le nom du namespace lors du namespace eval.
sur ce coup la il a raison de mettre les :: , le namespace que tu crées n'est pas forcément chargé dans le namespace global, tout dépend ou tu le source. Avec l'ajout des :: tu es sure qu'il soit chargé, dans tous les cas, dans le namespace global
imaginons que tu es:
TCL
namespace eval machin {
    namespace eval truc {
...
    }
}


le chemin de truc sera ::machin::truc
alors que
TCL
namespace eval machin {
    namespace eval ::truc {
...
    }
}


le chemin de truc sera ::truc
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir
#5
Bonjour,
Mise à jour du code incluant plusieurs choses qu'ont ma demandé sur irc.
Voici le lien :
Téléchargement ici.
Répondre Avertir


Atteindre :


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