Probleme avec commande AJOUT d'users
#1
Bonjour,

Je viens car j'ai un soucis avec une commande.

Voici le code
TCL
bind pub n .+@ Ajoutop
proc Ajoutop {nick uhost hand chan arg} {
	global botnick  
      set nick [lindex $arg 0]
	  if {[validuser $nick]} {
		puthelp "NOTICE $hand :$nick est déja Ajouté Comme Propriétaire"
		return 0
	}
	  putquick "MODE $chan +o $nick"
      adduser $nick $nick*!*@*
      chattr $nick +a
	  putserv "PRIVMSG $::chanback : $nick fait maintenant partie de la Team $::Nomback ! Bienvenue. :) "
}



Mais voilà, le soucis est que quand je tape .+@ test ca ajoute bien la personne, MAIS si quelqu'un arrive avec le pseudo tests donc avec un S en plus que le pseudo ajouté avant, et bien vu que le Flag est +a, le bot Op la personne.

J'aimerais que quand j'ajoute la personne et bien qu'apres le bot detecte le pseudo EXACTE.

Si quelqu'un peut m'aider ...
Merci d'avance.

Cordialement
Répondre Avertir
#2
Cela peut être plus simple avec son host :

TCL
bind pub n .+@ Ajoutop
proc Ajoutop {nick uhost hand chan arg} {
   global botnick  
      set nick [lindex $arg 0]
     if {[validuser $nick]} {
      puthelp "NOTICE $hand :$nick est déja Ajouté Comme Propriétaire"
      return 0
   }
   set vhost "Le hostname de la personne"
   if {$uhost == $vhost} {
     putquick "MODE $chan +o $nick"
      adduser $nick $nick*!*@*
      chattr $nick +a
     putserv "PRIVMSG $::chanback : $nick fait maintenant partie de la Team $::Nomback ! Bienvenue. :) "
} else { return 0 }



Avec ceci seul celui qui aura le host autorisé au pseudo pour monter en grade..
Chris© Unlimited based..
www.zumeo.fr | irc://irc.zumeo.fr:6667
Répondre Avertir
#3
Heu, c'est quoi cette réponse ALC ?
Le souci est que tu fais un "adduser $nick $nick*!*@*", alors qu'il te faudrait "adduser $nick $nick!*@*"
Répondre
#4
Merci CrazyCat

Je n'avais pas fait attention.
Répondre Avertir
#5
salut ,
Pourquoi ne pas utiliser la party line directement ? ça evite de charger le bot de scripts , et le rend plus "leger"
exemple:
Citation :.+user nickvoulu
.+host nickvoulu *!host@denickvoulu
.chattr nickvoulu +flag_que-l-on-veux_lui_donner #salon_desiré
Répondre Avertir
#6
C'est parceque je rajoute ce code dans le windop.tcl
pour eviter de me connecter à chaques fois en party line.
Répondre Avertir
#7
CrazyCat J'ai bien ajouté comme tu as dit

mais il y a un conflit avec une commande pour se op.

voici le premier code
TCL
bind pub n .+@ Ajoutop
proc Ajoutop {nick uhost hand chan arg} {
	global botnick  
      set nick [lindex $arg 0]
	  if {[validuser $nick]} {
		puthelp "NOTICE $hand :$nick est déja Ajouté Comme Propriétaire"
		return 0
	}
	  putquick "MODE $chan +o $nick"
      adduser $nick $nick!*@*
      chattr $nick +na
	  putserv "PRIVMSG $::chanback : $nick fait maintenant partie de la Team $::Nomback ! Bienvenue. :) "
}



Donc maintenant quand j'ajoute USER en proprietaire et que USERS arrive sur le salon ca ne op pas la mauvaise personne.

Mais par contre maintenant quand la bonne personne donc USER prend une extension exemple : USER|mange
et bien le code suivant ne fonctionne plus

voici le code
TCL
bind pub o !op op
proc op {nick host hand chan arg} {
set nicks [join [lindex [split $arg] 0]]
if {$nicks == ""} {
putserv "privmsg $::chanback :$nick vient de se OPER sur $chan"
putquick "mode $chan +o $hand"
} else {
putserv "privmsg $::chanback :$nick vient de OPER $nicks sur $chan"
putquick "mode $chan +o $nicks"
}
}



Apparement le bot ne reconnait plus le flag donné quand la personne prend une extension, car meme l'auto-op de l'eggdrop flag +a ne reop pas l'user.
Comment je peux faire pour que la commande !op detecte aussi bien USER que USER|mange ??

PS: l'extension mange est un exemple.

Merci d'avance
Répondre Avertir
#8
Je viens de voir que si j'ajoute USER et bien USER est op automatiquement par l'eggdrop car dans la commande on ajoute le Flag +a
ensuite avec la commande de !op et bien USER peut se op.

Par contre si USER met une extension donc USER|FUME et bien niubot deop USER|FUME et l'eggdrop ne reop pas USER|FUME alors qu'avec le Flag +a l'eggdrop devrais le reoper.

Et pareil quand USER|FUME tape !op et bien ca ne l'op pas.

Je redonne le code

TCL
bind  pub n .+@ Ajoutop
proc Ajoutop {nick uhost hand chan arg} {
   global botnick  
      set nick [lindex $arg 0]
     if {[validuser $nick]} {
      puthelp "NOTICE $hand :$nick est déja Ajouté Comme Propriétaire"
      return 0
   }
     putquick "MODE $chan +o $nick"
      adduser $nick $nick!*@*
      chattr $nick +na
     putserv "PRIVMSG $::chanback : $nick fait maintenant partie de la Team $::Nomback ! Bienvenue. :) "
}
 
bind  pub o !op op
proc op {nick host hand chan arg} {
set nicks [join [lindex [split $arg] 0]]
if {$nicks == ""} {
putserv "privmsg $::chanback :$nick vient de se OPER sur $chan"
putquick "mode $chan +o $hand"
} else {
putserv "privmsg $::chanback :$nick vient de OPER $nicks sur $chan"
putquick "mode $chan +o $nicks"
}
}



Merci d'avance
Répondre Avertir
#9
Donc il faudrais faire comme djdu32 le dit, ajouté l'host de la personne désiré.

Comme ça il n'auras plus aucun soucis d'extension avec les nicks.
Répondre Avertir
#10
Le soucis djdu32 c'est qu'en ajoutant le code
TCL
bind  pub n .+@ Ajoutop
proc Ajoutop {nick uhost hand chan arg} {
   global botnick  
      set nick [lindex $arg 0]
     if {[validuser $nick]} {
      puthelp "NOTICE $hand :$nick est déja Ajouté Comme Propriétaire"
      return 0
   }
   set vhost "Le hostname de la personne"
   if {$uhost == $vhost} {
     putquick "MODE $chan +o $nick"
      adduser $nick $nick*!*@*
      chattr $nick +a
     putserv "PRIVMSG $::chanback : $nick fait maintenant partie de la Team $::Nomback ! Bienvenue. :) "
} else { return 0 }
}



Et bien ca ne m'ajoute plus personne. Et si je doit remplacer "Le hostname de la personne" par le host de la personne en question,
ca ne marchera que pour la personne. Moi je veux que ca fonctionne pour toutes les personnes que j'ajouterais par la suite.
Répondre Avertir
#11
Ton souci est en fait que tu ne sais pas quel masque tu veux ajouter.
Tu nous dis que TEST (nick principal) doit être reconnu, TESTS (qui est un autre utilisateur) non mais TEST|Mange oui.

Je pense que tu n'as pas tout compris à la gestion des utilisateurs par eggdrop. Surtout si tu travailles par vhost, pourquoi est-ce que tu t'embètes avec les nicks ?
Répondre
#12
Bin en fait je cherche un moyen d'ajouter quelqu'un par ma commande .+@ et que le bot le reconnaisse meme si la personne a une extension par la suite.
Mais que si une autre personne qui a un pseudo presque identique et bien que celle là, ca ne la prenne pas.
Mais le soucis je ne sais pas comment faire.

Je precise que TEST|MANGE est la meme personne que TEST sauf qu'il a une extension, alors que TESTS n'est pas la meme personne c'est juste que le pseudo est presque pareil.
Répondre Avertir
#13
Il faudrais donc que quand je tape .+@ ca m'ajoute le pseudo et le host ou bien que le host de la personne, mais quand je rajoute

TCL
adduser $nick $nick!*@*$host



et bien en host ca ajoute le miens :s
Répondre Avertir
#14
loulou7593 a écrit :Il faudrais donc que quand je tape .+@ ca m'ajoute le pseudo et le host ou bien que le host de la personne, mais quand je rajoute
TCL
adduser $nick $nick!*@*$host


et bien en host ca ajoute le miens :s

C'est normal, le $host récupéré par la procédure est celui de la personne qui lance la commande.

Tout d'abord, dans ta procédure, n'utilise $nick pour ta "victime" alors qu'il est déjà utilisé par la personne qui déclenche la commande. Choisis plutôt $unick ou $victim.

Ensuite, pour avoir quelque chose du genre test*!*@host, il y a deux choses à faire:
TCL
set uhost [getchanhost $unick $chan]


Ensuite, tu peux utiliser la fonction Masque utilisateurs pour récupérer le bon mask que tu veux ajouter:
TCL
adduser $unick [masktype $uhost 10]


Répondre


Atteindre :


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