Changement de realname au join
#1
Hello,
J'essaye actuellement de faire un petit tcl qui modifie automatiquement le realname des utilisateurs au join dans un salon ou ce tient le robot mais je coince ... etant donné que j'ai jamais vraiment utiliser les regex et les raw je me suis un peu perdu et mon code est invalide (il y a aucune réaction).

Voici mon code :
TCL
bin join -|- "*" realname
proc realname {nick uhost hand chan arg} {
	global Clam;
	set asv [lrange $arg 2 end]
	set name [lindex $arg 0]
	bind_raw - 311 msg_realname
	if {$asv == ""|| [regexp -nocase {^[1-7][0-9]\s(h|f)\s.*} $asv]} {
	putdcc $Clam(idx) ":$Clam(link) who $asv"
	putdcc $Clam(idx) ":$Clam(pseudo) PRIVMSG $Clam(admin) :Mauvais ASV >> $name >> $asv"
	return 1
	}
}
 
proc msg_realname {nick from keyword arg} {
global Clam realname asv
    if {[info exists realname] && ($keyword == 311)} {
	putdcc $Clam(idx) ":$Clam(link) SETNAME $nick $Clam(asv)"
	unbind raw - 311 msg_realname 
	unset realname
             unset asv
	}
}



Ps : $Clam(asv) est une valeur par defaut dans un fichier de config qui est de "20 H asv de defaut"

Merci aux gens qui vont m'aider.
Répondre
#2
Essayes avec ça comme regex:

Code :
^[1-7][0-9]\s[HF]\s(.*)$
Répondre Avertir
#3
Daccord sinon la construction du code est bien ?
Répondre
#4
bin c'est une commande perso?
Parceque un bind join avec un argument "arg" j'ai jamais vu.
Répondre Avertir
#5
Petite erreure de ma part quand j'ai taper le code ^^, sinon cela est bind
Répondre
#6
Nan mais ton code tu l'as même pas testé en fait, avoues, parceque la ça dois te générer une erreur direct.
Répondre Avertir
#7
Si je l'est tester mais en touchant au code (en voulant modifier les procs) j'ai carrement effacer les deux premieres lignes et quand je les est réecrite, sa mais pas venue a l'idée de verifier le bind.
Donc en corrigeant correctement le bind voici l'erreure que j'obtient :
Tcl error [realname]: wrong # args: should be "realname nick uhost hand chan arg"
Répondre
#8
En gros l'erreur, que tu obtiens EST l'erreur dont te parlait Merwin et qui fait que ton bind ne peut pas fonctionner.

Syntaxe :
bind join <flags> <mask> <proc>
procname <nick> <user@host> <handle> <channel>
Répondre Avertir
#9
Daccord, donc je bloque a cette endroit car je voit pas comment faire apart avec un raw ?

Est-ce que le code ci dessou pourais marcher ?
TCL
bind raw - "???" realname
proc realname { arg } {
global Clam;
....



N'etant pas chez moi je ne peut pas voir le nom/numero de la raw de join sur un salon ...
Le code que j'ai ecrit rapidement est fait directement a partire du forum.
Répondre
#10
Selon cette page:
Citation :
  • Syntaxe: bind raw <flags> <keyword> <proc>
  • Procédure: procname <from> <keyword> <text>
Et j'avoue ne pas comprendre ta question sur le raw join...
Répondre
#11
Enfaite non y'a pas vraiment de question, juste mon esprit loufoque qui a dit qu'une enorme *bip* ...
Par contre je comprend toujours pas pour faire mon bind =/
Répondre
#12
Je ne comprends toujours pas. Quel bind ?
Tu as besoin de 2 binds: celui sur le join (pour lancer un /whois) et celui sur le raw 311 (le retour du whois).

Maintenant, si faire ton bind correspond à faire la procédure liée au bind, exprimes toi correctement.
Répondre
#13
J'ai pas su m'exprimer ...
Mais tu m'a repondu sans réellement me comprendre, je n'avais pas compris que je devais faire 2 bind pour le join et après un pour le raw.
Sa m'aide beaucoup, merci
Répondre
#14
heretoc :p

quand tu fait un bind join, tu ne doit pas avoir le arg.

TCL
proc realname {nick uhost hand chan arg} { ...



doit être:

TCL
proc realname {nick uhost hand chan} { ...



dans un bind join, on ne doit pas trouver de "arg". sans quoi tu retrouve tout le temps une erreur genre:
"wrong args, should be { blablablabla }".

les autres, corrigez moi si je me trompe :$
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté