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


Bind raw - FAILED OPER
#1
Bonjour,

J'ai un petit sur ces quelques lignes, qui, comme vous avez pu le comprendre serait que lorsque une personne fait un FAILED OPER, l'eggdrop lui envoi un message, et ainsi qu'un message sur le salon d'oper.

J'essaye ceci, mais rien ne se passe, ni même une erreur en PL.

PHP Code:
bind raw NOTICE opers:notice
proc opers
:notice {from key arg} {
global 
botnick notc mod
   set text 
[split $arg
   if {[
join [lrange $text 1 3]] == "Failed OPER"} {
     
set opers_nick [lindex $text 6]
      
set opers_user [string range [lindex [split [lindex $text 6"@"01 end]
      
set opers_host [string range [lindex [split [lindex $text 6"@"10 end-1]
   
set oper_userhost "$opers_nick!$opers_user@$opers_host"
    
puthelp "PRIVMSG #opers :Je crois bien que $opers_nick a du mal à s'ircop... ( $opers_userhost )"
    
puthelp "PRIVMSG $opers_nick :Tout va bien ?"
}


Sachant que la "SNOTICE" est :

Code:
-NOTICE- Failed OPER attempt by pseudo (~user@host) [unknown oper]
Voilà, merci d'avance !
#2
Comme ceci ?
PHP Code:
bind raw "001" opers:notice
proc opers
:notice {from key arg} {
global 
botnick notc mod
   set text 
[split $arg
   if {[
join [lrange $text 1 3]] == "Failed OPER"} {
     
set opers_nick [lindex $text 6]
      
set opers_user [string range [lindex [split [lindex $text 6"@"01 end]
      
set opers_host [string range [lindex [split [lindex $text 6"@"10 end-1]
   
set oper_userhost "$opers_nick!$opers_user@$opers_host"
    
puthelp "PRIVMSG #opers :Je crois bien que $opers_nick a du mal à s'ircop... ( $opers_userhost )"
    
puthelp "PRIVMSG $opers_nick :Tout va bien ?"
}


Rien n'y fait.
#3
join [lrange $text 1 3] sur ta notice donne "OPER attempt by" et non pas "Failed OPER".
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.
#4
As-tu pensé à faire:

tcl
bind raw - * test:raw
proc test:raw {from kw text} {
   putlog "$from => $kw : $text"
}

Et aussi, est-ce que ton eggdrop a les bons flags pour recevoir ces snotices ?

@alias_angelius: le raw NOTICE est valable.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#5
MenzAgitat Wrote:join [lrange $text 1 3] sur ta notice donne "OPER attempt by" et non pas "Failed OPER".

Je dois mettre :


Code:
[lrange $text 1 2]
Ceci alors ?

@CrazyCat: L'eggdrop est ircop, c'est bon normalement, non ? (pour recevoir les snotices).

PHP Code:
bind raw NOTICE opers:notice
proc opers
:notice {from key arg} {
global 
botnick notc mod
   set text 
[split $arg
   if {[
join [lrange $text 1 2]] == "Failed OPER"} {
[
lrange $text 1 3]
     
set opers_nick [lindex $text 6]
      
set opers_user [string range [lindex [split [lindex $text 6"@"01 end]
      
set opers_host [string range [lindex [split [lindex $text 6"@"10 end-1]
   
set oper_userhost "$opers_nick!$opers_user@$opers_host"
    
puthelp "PRIVMSG #opers :Je crois bien que $opers_nick a du mal à s'ircop... ( $opers_userhost )"
    
puthelp "PRIVMSG $opers_nick :Tout va bien ?"
}

#6
Ne donne des valeurs au hasard et réfléchis un peu.

Les éléments d'une liste sont comptés à partir de 0.

Pourquoi tu n'essaies pas de mettre cette ligne dans ton code pour voir ce que ça retourne ? Tu verras ainsi ce que tu extrais de la notice :
tcl
putlog [lrange $text 1 2]

un peu de lecture : http://www.eggdrop.fr/Utilisation_des_listes
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.
#7
alanfollow Wrote:
MenzAgitat Wrote:join [lrange $text 1 3] sur ta notice donne "OPER attempt by" et non pas "Failed OPER".
Je dois mettre :

Code:
[lrange $text 1 2]
Non, tu vois bien que l'index 1 contient "OPER".
Il te faut donc:

tcl
[lrange $text 0 1]

alanfollow Wrote:@CrazyCat: L'eggdrop est ircop, c'est bon normalement, non ? (pour recevoir les snotices).
Il lui faut surtout le flag +s (receive server notices)

J'ai l'impression que tu n'as pas lu mon message et donc pas testé mon petit bout de script.

Conclusion: j'aiderai quand tu liras et appliqueras.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#8
Kékidi ? ^^

T'en fais pas pour la sécurité ;)
#9
PHP Code:
bind raw NOTICE opers:notice
proc opers
:notice {from key arg} {
global 
botnick notc mod
   set oper_text 
[split $arg
   if {[
join [lrange $oper_text 0 1]] == "Failed OPER"} {
     
set opers_nick [lindex $oper_text 6]
      
set opers_user [string range [lindex [split [lindex $oper_text 6"@"01 end]
      
set opers_host [string range [lindex [split [lindex $oper_text 6"@"10 end-1]
   
set oper_userhost "$opers_nick!$opers_user@$opers_host"
    
puthelp "PRIVMSG #opers :Je crois bien que $opers_nick a du mal à s'ircop... ( $opers_userhost )"
    
puthelp "PRIVMSG $opers_nick :Tout va bien ?"
    
putlog "[lrange $oper_text 1 2]"
}
}

bind raw - * test:raw
proc test
:raw {from kw text} {
   
putlog "$from => $kw : $text"


Rien ne se passe avec ton petit bout de code @ CrazyCat.
Ni en PL, ni rien.

Sinon, j'ai essayé ceci pour les connexions, et ça fonctionne.
PHP Code:
bind raw NOTICE connection:notice
proc connection
:notice {from key arg} {
global 
botnick notc mod
   set text 
[split $arg
   if {[
join [lrange $text 2 5]] == "Notice -- Client connecting"} {
     
set c_nick [lindex $text 9]
      
set c_user [string range [lindex [split [lindex $text 10"@"01 end]
      
set c_host [string range [lindex [split [lindex $text 10"@"10 end-1]
   
set c_userhost "$c_nick!$c_user@$c_host"
    
puthelp "PRIVMSG #opers :Il y a $c_user @$c_host qui arrive !"
}


Mais pour le FAILED OPER, impossible, rien ne se passe.
#10
coucou ,

Et si tu changes le mot detecté " Failed OPER "

Par : " [unknown oper] "

cordialement.


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Demande] Oper automatiquement sur un salon Dydouch 2 3,613 02/12/2013, 22:58
Last Post: Dydouch
  [KILL] Protection de la commande /oper pseudo FauxPass mecmec 12 7,077 24/04/2011, 23:14
Last Post: aliasangelius
  Protect /oper IluZi0n 1 3,635 05/02/2010, 23:59
Last Post: fedora
  Oper-Tcl Meribre 4 5,045 14/11/2009, 18:25
Last Post: Su_e_do_is

Forum Jump:


Users browsing this thread: 1 Guest(s)