Communauté Eggdrop

Version complète : Anti-Invite
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonsoir,
Je viens vous demander une petite aide. J'avoue etre nouveau dans les Tcl et actuellement j'essaie de mettre en place un tcl qui ban lorsque mon bot recoit une invite d' un user. Par contre, j'aimerai que mon bot envoie la commande à un autre Robot (qui lui est Op et auquel il est auth) pour pouvoir bannir cet user.
Pourriez vous m aider car la je suis un peu perdu et je suis entrain de tout mélanger. Sad
Merci beaucoup

tcl
bind pub - * pub:invite
 
proc pub:invite { nick uhost hand chan victim } {
if {"$chan"=="#XXX" && "$victim"=="$::botnick"} {
putquick "PRIVMSG Naholane :BAN $chan $nick Masse Invite"
}
return
}


Effetivement, là ton eggdrop va réagir à son nom cité dans un canal (et uniquement son nom, rien d'autre dans la ligne).

Qu'appelles-tu une invite ? un /invite ou un spam pour un autre canal ?
Bonsoir CrazyCat

Pour te repondre c'est en /invite. Pas en spam. J'ai le bien en Pl (invite to me) pour l'invitation sur tel #salon. Mais celui-ci ne réagit pas à celle-ci

Merci pour ton aide.
Désolé, j ai un peu mal écrit avant. Je reprends donc, sur mon bot, en PL celui qui n'est pas Op et qui recoit l'invite ( /invite) j'ai bien le message invite to me sur #Salon.
Pour tout ce qui est AntiSpam, Spam Bot, j'ai des tcl qui tournent très bien en autre celui de fedora pour son antispambot.
Que dois-je changer dans ma proc pour que mon envoie donc le message au bot Op pour se bannissement.
Merci
salut ,

Dans l'idée , je pense que ça doir être quelque chose du genre :

botnick1 : Reçois un invite => reaction => envois d'une notice ou msg à botnick2 . " spam invit de $nick"

botnick2 : Quand il reçois une notice ou msg de botnick1 comportant "spam invite" , il reagi en kickban "$nick" .

bonne journée.
Donc, ton bind n'est pas bon, l'eggdrop ne doit pas réagire à un message en canal (pub) mais à un raw particulier:
tcl
bind raw - INVITE join:invite
 
proc join:invite {from key arg} {
...
}


Bien sûr, il faut donc parser $arg pour retrouver les bons éléments ($from devrait être l'utilisateur, $key sera INVITE)
Merci de vos reponses, je vais donc modifier tout ca.
Bonjour à tous

j'ai recupéré un TCL pour éviter les mass invites et le probleme que je rencontre il ne dit pas sur le salon log quel chan le bot à était inviter.Quelqu'un aurais une idée svp ?

tcl
bind raw - INVITE show:invite
 
proc show:invite { nick host key args } {
 global botnick si
  set nik [lindex [split $nick !] 0]
  set host [lindex [split $nick !] 1]
  set ban [lindex [split $nick @] 1]
  set text [lindex [split $args] 1 end] 
  foreach ehost $si(except) {
    if {[string match $ehost "$nik!$host"]} { return 0 }
  }
     putserv "PRIVMSG $::SalonLog :INVITE SPAM by\0032 $nik \003\[$host\]: invited to $text"
}



voici ce qu'il me dit sur le chan log
Citation :Morice: INVITE SPAM by boulet [boulet@45566756724.net]: invited to

merci de votre aide
Remplace
tcl
set text [lindex [split $args] 1 end]



par
tcl
set text [lindex [split $key] 1 end]



Cordialement DnS