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


Bannir un user sur son extension [résolu]
#1
Bonjour voila je vous expose mon problème.

J'aimerais savoir comment mon eggdrop pourrais ban un pseudo sur son extension.

exemple pseudo de base ==> loulou

et je voudrais que l'eggdrop si le pseudo deviens ==> loulou|blabla

Merci de vos futurs reponses.
#2

Très mignon en bleu centré, mais je ne suis pas certain d'avoir compris exactement ce que tu veux (si tu te relis, tu comprendras sans doute pourquoi)
Cependant, mon intuition me dit que ceci peut t'être utile :


tcl
newchanban $chan "[regsub -nocase {([\^\]\[`|_\-\\\{\}])(.*)} $nick ""]*!*@*" $::botnick "message de ban"


Ca prend en compte les caractères de séparation [ ] { } \ - _ | ^ ` qu'on retrouve fréquemment dans les pseudos.

Le résultat pour MenzAgitat[ZZZzzzZz] par exemple sera un ban sur MenzAgitat*!*@*


C'est dans ces cas là qu'on mesure la puissance des expressions régulières (regexp et regsub entre autres) et je ne peux que t'inciter à de documenter dessus.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#3
Donc si je veux juste bannir l'extension blabla ca donnera


tcl
newchanban $chan "[regsub -nocase {([\^\]\[`|_\-\\\{\}])(.*)} $nick "blabla"]*!*@*" $::botnick "message de ban"

#4
Pour bannir un pseudo sur son "extension" (par exemple, [ZZZzzzZz] dans MenzAgitat[ZZZzzzZz]), tu peux utiliser ceci :

tcl
set resultat ""
regexp -nocase {^(.*?)([\^\]'`\[_\-\\\{\}]+.*)$} $nick truc truc resultat
newchanban $chan "*[set resultat]!*@*" $::botnick "message de ban"

Bien sur, il faut que les variables $chan et $nick existent et soient définies pour que cela fonctionne

Edit: Ah par contre, sans le set au début, le script renverra une erreur si il n'est pas possible de trouver l' "extension" (car la regexp n'est pas matchée)

NOTE 2: Le truc affiché dans les balises TCL est faux !
Apparament un des carractères passe mal, entrainant l'apparition de ce \
#5
serais t'il possible d'avoir l'exemple si je veux bannir l'extension |OnAir c'est à dire que n'importe quel pseudo qui à en extension |OnAir soit banni du salon ???

car je ne comprend pas ==> $nick truc truc resultat
#6
Bon, en admettant que tu veuille simplement bannir les extensions directement, tu peux faire beaucoup plus simple
Voila un script qui devrait faire l'affaire :


tcl
proc ::banExtension {nick uhost hand chan text} {
  set text [lindex [split $text] 0]
  newchanban $chan "*[set text]!*@*" $::botnick "message du ban"
  }
bind pub n !banextension ::banExtension


A noter que tu peux modifier le !banextension en bas pour changer la commande
Ou bien, le n en -|o si tu veux que les ops du canal (dans l'eggdrop) puissent l'utiliser

Edition: Auquel cas t'as plus qu'a faire !banextension |OnAir, et c'est bon :]
#7
oki je vais essayer ca et je tiens au courant.

Merci de l'aide.
#8
Ca fonctionne.

Merci beaucoup


Possibly Related Threads…
Thread Author Replies Views Last Post
  Bannir un user sur differentes détections cac.team 13 6,901 30/04/2010, 17:15
Last Post: DodY
  Ajouter un user pseudo long [résolu] loulou7593 11 5,896 18/12/2009, 23:04
Last Post: ZWeR
  bannir des phrases bewess 6 5,247 30/11/2009, 22:53
Last Post: cestlemien
  bannir une annonce a repetiton bewess 5 5,416 18/10/2009, 09:30
Last Post: bewess
Sad Bannir un host en TCL Babytigrou16 31 20,390 22/11/2007, 21:03
Last Post: Babytigrou16

Forum Jump:


Users browsing this thread: 1 Guest(s)