Ban $newnick == nadnick après modif de $nick

Résolu
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009 - 31 mars 2009 à 15:19
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009 - 6 avril 2009 à 10:34
hello.
je suis op, j'ai déjà un addon shitlist, et je veux ban le pseudo qui change (durant sa session) par nouveau nick interdit qui se trouverait dans un fichier badnicks.txt,  *put*, batard, sur mot entier ou partie du mot...
j'ai essayé d'adapter divers codes mais je me plante.
je suis sOP sur plusieurs salons .
les pseudos incorrects en on *:join: sont déjà pris en compte.
restait donc à coder pour les modifications en cours de session
voici ma dernière tentative (incorrecte) :
_______________________________________________________________________________
on ^1:NICK:
{ if ($me isop $chan) { if ($nick != $me)
    { var %n 0 | while (%n <= $lines(badnicks.txt)) { inc %n | if ($read(badnicks.txt,%n) isin $newnick)
        { ($newnick  ison  $chan)) ban -ku300 $chan $newnick change ce pseudo stp ! }
      }
    }
  }
_______________________________________________________________________________

merci par avance à qui voudra m'aider ...à corriger ou me donner une piste .

merci encore.

12 réponses

WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
31 mars 2009 à 16:29
salut

le code est tres mal codé et faut
les accolades sont mal positionné et une est manquante

dans ton ON NICK le $chan que tu a mis return $null donc ça marchera pas

pour le cas de ON NICK c'est pas une simple code a faire
3
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009
31 mars 2009 à 16:58
merci WorldDMT, je m'y colle .
je jette et je recommence , je viens de me "relire" :(

merci
3
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
3 avril 2009 à 10:20
je pense qu'il va falloir ajouté une condition avant la command kb



if (%n ison $eval($ $+ %i,2)) ban -ku300 $v2 $v1 change ce pseudo stp !



donc pour etre plus clair



on @!*:nick:{
  var %chan $regsubex($str(.,$chan(0)),/./g,$+($chan(\n),$chr(32))),%i $numtok(%chan,32),%n $newnick
  if $read(fichier.txt,w,%n) {
    tokenize 32 %chan
    while %i {
      if (%n ison $eval($ $+ %i,2)) ban -ku300 $v2 $v1 change ce pseudo stp !
      dec %i
    }
  }
}
3
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
2 avril 2009 à 15:11
Tu dis que tu as déja un code qui gère lorsqu'un pseudo rentre sur le salon, on pourrait le voir ? parce que c'est exactement la même methode que pour le on nick...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009
2 avril 2009 à 16:49
raw 352:*:{
  if (!%who.num) { /unset %who* | /set %who.num 1 }
  /set %who.id[ $+ %who.num $+ ] $6 | /notice $me $6,$9-,entre en salle à $strip($time))
  /inc %who.num
}

mon script est ircap 2.1

^^ merci wims
0
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
2 avril 2009 à 18:24
salut wims

pour le join c'est on *:join:#:<cmd>
mais pour le changement de pseudo c'est on *:nick:<cmd>

ce que je veux dire pour le changement de pseudos c'est pas une action sur un chan mais sur le serveur esque ça pourra marché comme le on join?

au passage j'ai utilisé ircap c'est un script portugais ou espagnol d'origine il n'est pas mal
0
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009
2 avril 2009 à 18:31
wims :
voici ce que j'ai dans mon script ircap :
;WHOIS
alias TM.W {
  goto $1
  :311 | {
    %_w $+ i25 �F; <c7> •••••---->�F;�2; $3 �2;<c4>[�F; $+ $4 $+ <c4>@�F; $+ $replace($5,.,<c4>�2;.�2;�F;) $+ <c4>] $iif((%tm.pais),<c4>[<c2> $+ %tm.pais $+ <c4> ]) ---�2;•
    %_w $+ i25 <c4> |-›<c5> âge �F; �F; �F; �F; �3; $+ $color(background) $+ ?'<c4>�2;:�F; $7-
    if (%whoixclon) %_w $+ i25 <c4> |---›<c5> Clones $+ �3; $+ $color(background) $+ ' �F; �F; <c4>�2;:�F; %whoixclon
    if (%tm.wuser) { %_w $+ i25 <c4> |---›<c5> u-Liste $+ �3; $+ $color(background) $+ ' �F; �F; <c4>�2;:�F; $gettok(%tm.wuser,1,32) <c4>[<c1> $+ $gettok(%tm.wuser,2-99,32) $+ <c4>] }
    return
  }
  :319 | %_w $+ i25 <c4> |---›<c5> Salles �F; �F; �3; $+ $color(background) $+ ?'<c4>�2;:�F; $replace($strip($4-),$chr(35),<c5>#�F;,@,<c4>@�F;,+,<c4>+�F;,%,<c4>%�F;) | return
  :312 | %_w $+ i25 <c4> |---›<c5> Serveur �3; $+ $color(background) $+ '<c4>�2;:�F; $4 <c1> $+ $5- | return
  :301 | %_w $+ i25 <c4> |---›<c5> Absent �F; �F; <c4>�2;:�F; $4- | return
  :313 | %_w $+ i25 <c4> |---›<c5> IRCop�3; $+ $color(background) $+ :�F; �F; �F; <c4>�2;:�2;<c7> $4- | return
  :317 | %_w $+ i25 <c4> |---›<c5> Connec. <c4>�2;:�F; $duration($calc($ctime - $5)) <c5> Inactif<c4> �2;:�F; $duration($4)  | return
  :318 | %_w $+ i25 �F; <c4> ¯° $+ $str(-,80) $+ �2;• | return
  :extra | %_w $+ i25 <c4> |---›<c5> +info�3; $+ $color(background) $+ ' �F; �F; �F; �F; <c4>�2;:�F; $3- | return
  :314 | %_w $+ i25 <c4> |---›<c5> Whowas�3; $+ $color(background) $+ '<c4>�2;:�F;�2; $3 �2;<c4>[<c2> $+ $4 $+ <c4>@<c2> $+ $replace($5,.,<c4>�2;.�2;<c2>) $+ <c4>]�F; $7- | return

}

#TM.lusers on
raw 251:*: %borra.lusers = $calc($4 + $7) | ecot -st <c4> _ _[�F; Resumé de l'IRC <c4>:<c2> $nnet <c4>]---�2;• | ecot -st <c4>|-›�F; %borra.lusers usagers <c4>(�F; $+ $7 +i<c4>)�F; en $10 serveus <c4>(�F; $+ $int($calc(%borra.lusers / $10)) usagers par serveur<c4>) | halt
raw 252:*: ecot -st <c4>|-›�F; $2 ircops | halt
raw 253:*: ecot -st <c4>|-›�F; $2 connections inconnues | halt
raw 254:*: ecot -st <c4>|-›�F; $2 salles <c4>(�F; $+ $int($calc(%borra.lusers / $2)) usagers par salle<c4>) | unset %borra.lusers | halt
raw 255:*: ecot -st <c4>|-›�F; $4 clients sur $7 serveurs <c4>(�F; $+ $server $+ <c4>) | ecot -st <c4> ¯° $+ $str(-,80) $+ �2;• | halt
raw 265:*: ecot -st $logo $2- | halt
raw 266:*: ecot -st $logo $2- | halt
#TM.lusers end
0
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009
2 avril 2009 à 18:35
et avec la ligne dont parle WorldDMT ,  avec on nick :

on ^1:NICK: {
  if $nick == $me {
    .timer 1 1 ja yo20
    if $window(@setup) { %setup.tmpnic = $newnick | refres }
    if (%tmp.nickgpass) .timer 1 1 _ca nickguardapass %tmp.nickgpass | unset %tmp.nickgpass
  }  var %a $tma(nick,$nick,$newnick,$address) | var %i $comchan($newnick,0) | while (%i > 0) { if ($kprot($comchan($newnick,%i),35) != 1) echo -tq $comchan($newnick,%i) %a | dec %i } | if $nick == $me echo -stq $tma(nickme,$nick,$newnick,$address)
  halt
}
0
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
2 avril 2009 à 20:41
rien a y voir



le codage des scripts complet ne sont pas clair car il y a plein d'alias et la plupart des fois le codage est trop basique

bref avec ON JOIN c'est un code de quelque mots pour detecter les bads nicks mais pour ON NICK c'est pas pareil

puisque ON JOIN c'est une action qui se produit sur un chan mais le changement du pseudo c'est une action qui se produit sur le serveur donc avec ON NICK il va falloir une loop

je donne des exemples:

soit un fichier.txt contient des pseudos interdit

1- exp sur ON JOIN

on @*:join:#:if ($read(fichier.txt,w,$nick)) ban -ku300 # $nick change ce pseudo stp !

2- exp sur ON NICK

on @!*:nick:{
  var %chan $regsubex($str(.,$chan(0)),/./g,$+($chan(\n),$chr(32))),%i $numtok(%chan,32),%n $newnick
  if $read(fichier.txt,w,%n) {
    tokenize 32 %chan
    while %i {
      ban -ku300 $eval($ $+ %i,2) %n change ce pseudo stp !
      dec %i
    }
  }
}

biensur c'est rien que des exemples tu peux utilisé comme base si tu veux.


@+
0
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009
2 avril 2009 à 21:28
merci WorldDMT !
je vais poser l'ensemble  dans les remotes  et je reviendrai dire si ça le fait :)
0
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
2 avril 2009 à 21:33
c'est pas obligé que ça marche chez toi il va falloir voir ce qu'il te faut avant :/
0
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009
6 avril 2009 à 10:34
merci WorldDMT , idem pour tes autres codes que j'utilise :) et thx aussi à wims
0
Rejoignez-nous