Communauté sur les Eggdrops - Community about Eggdrops
Une Blacklist par salon. - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (https://forum.eggdrop.fr)
+-- Forum: Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum: Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Thread: Une Blacklist par salon. (/showthread.php?tid=1259)



Une Blacklist par salon. - aliasangelius - 15/10/2012

Bonjour,

Je fait ce tread pour avoir une explication.

Je désire faire une blacklist (TCL).
Voici le fonctionnement du TCL que j'aimerais :

Lors de l'activation sur un salon par exemple en tapant : .blon
Ceci va créer un fichier salon.db

Dedans seront stocker les blackliste faite pour se salon en tapant .+bl pseudo par exemple.

Si $pseudo rejoint un autre salon que celui ou il et blacklist j'aimerais que sa ne prenne pas en compte.

La ou je ne comprend pas comment faire et lors du bind join comment faire pour vérifié si #salon à un fichier qui lui correspond..

Je voudrais savoir si vous aurez une explication à me donner Pour me permettre de comprendre comment faire.

Merci d'avance


RE: Une Blacklist par salon. - CrazyCat - 15/10/2012

Ben je ne vois pas le souci.
Pour l'activation:

tcl
setudef flag blon
bind dcc n blon blon
proc blon {handle idx text} {
   set chan [lindex [split $text] 0]
   # On vérifie que c'est bien un canal et que l'egg est dessus
   # Et on crée le fichier qui va bien (tu te débrouilles donc pour le nom de fichier)
   channel set $chan +blon
}


Et pour checker les entrées:

tcl
bind join - * blverif
proc blverif {nick uhost handle chan} {
   if {[channel get $chan blon] == 0} { return 0; } # La, on sort si le canal n'est pas en mode blacklist
   # Et la suite du traitement si le canal est en mode blackliste
}




RE: Une Blacklist par salon. - aliasangelius - 15/10/2012

Pour l'activation je voyer comment faire.

Mon soucis et plus sur la compréhension des pseudos checker.
Si je rajoute un pseudo Dans un fichier là pas de soucis.

Le soucis c'est si le pseudo et dans le fichier et que l'eggdrop regarde si $salon et activé il ban sur tout les salon.
Donc ont se retrouve avec une blackliste global.
Moi ce que je veut essayer de comprendre c'est de faire une blackliste local.

Faire comme dans ton exemple Crazy serait du global si je comprend ton code.


RE: Une Blacklist par salon. - CrazyCat - 15/10/2012

Mais pas du tout !
Si le canal est en +blon et que le pseudo est dans le fichier du canal (je te rappelle que tu as dit "Ceci va créer un fichier salon.db", donc il y a bien un fichier par salon), tu bannis sur le salon concerné.

Imaginons que tu as #alias et #angelius, tous les deux avec le +blon. Dans le fichier alias.db, il y a alias_angelius mais pas dans le fichier angelius.db.
Si tu arrives sur #alias, tu vas lire alias.db et donc faire un newchanban #alias alias_angelius!*@* "Eggdrop" "Pseudo blacklisté".
Si tu arrives sur #angelius, tu vas lire angelius.db et tu ne trouves pas le nick, donc pas de ban.


RE: Une Blacklist par salon. - aliasangelius - 15/10/2012

Ah oui en effet !

C'est même plus simple que je penser.
Je fait sa et des que c'est niquel je mais dispo le code sur le site.