[Résolu] Laisser un message pour un utilisateur
#1
Bonsoir,

Je voulais savoir si il etait possible d'avoir un tcl qui permettrais de laisser un message à un utilisateur qui a un certain flag et que le bot lui dise qu'il a un message quand cette personne arrive sur le salon precis avec une commande !message, !lire, !effacer ???

J'ai trouvé le tcl message delivery system mais je pense qu'il faut avoir un server perso avec nickserv ou un truc du genre.

Merci de votre aide.
Répondre Avertir
#2
Salut,

Non MDS ne dépend pas forcement de service.
De plus si tu regarde bien la configuration très doucement tu verra que tu peux très bien modifié les flag
Exemple : pour envoyer lire etc... tu peut très bien mettre o|o donc Opérateur globaux/Opérateur salon.
Répondre Avertir
#3
Salut,

Oui j'ai vu les flags apparement ca fonctionnes bien sauf pour les pseudos non enregistré sur le bot.

Par exemple, brutus n'est pas sur le bot, quand je tape !msg brutus blablabla, ca me dit message pour brutus accepté.

J'ai modifié la ligne
Code :
# autorisations nécessaires pour pouvoir recevoir un message
    variable receivemsg_auth "o|o"

Donc brutus ne recoit pas de notice comme quoi il a un message en attente, mais le message a quand meme été enregistré lool.

Je ne vois pas comment faire pour que quand je tape !msg pseudo texte, ca aille verifier si le pseudo est bien dans la liste et que si il n'y est pas, que ca n'enregistre donc pas le message et que ca dise pseudo non enregistré par exemple.

Merci
Répondre Avertir
#4
Heu faut regardez dans la configuration ou le code si ya pas un endroit ou il et mis que pour ajouter un message faut que la personne soit dans la listes des handles.
Sinon essayé de rajouter une proc/modifié la proc existant pour que sa fasse ça.
Répondre Avertir
#5
J'ai regardé mais je trouve rien concernant tout ca.

peut etre un matchattr qu'il faudrait faire mais je ne saurais meme pas ou le placer dans le code lol.

Je join le tcl au cas ou quelqu'un pourrais regarder.

Merci d'avance

[attachment=240]
Répondre Avertir
#6
ça se trouve ici :

tcl
###
### Un utilisateur veut envoyer un message
###
proc MDS::pub_sendmsg {nick host hand chan arg} {
	if { (![channel get $chan MDS]) || (($MDS::antiflood == 1) && ([MDS::antiflood [MDS::clean_data $chan] $hand "msg"])) } { return }
	if { $MDS::DEBUGMODE } { putlog "\00304\[$MDS::scriptname - DEBUG\]\003 pub_sendmsg : $nick \00307|\003 $host \00307|\003 $hand \00307|\003 $chan \00307|\003 $arg" }
	MDS::check_identity $nick $host $hand $chan "pub" "send" $arg
}
proc MDS::priv_sendmsg {nick host hand arg} {
	if { (($MDS::antiflood == 1) && ([MDS::antiflood [MDS::clean_data $nick] $hand "msg"])) } { return }
	if { ![onchan $nick] } {
		puthelp "$MDS::delivery_mode $nick :\003[set MDS::num_sec_color]Vous devez vous trouver sur un chan où $::botnick est présent pour utiliser la messagerie.\003"
		return
	}
	if { $MDS::DEBUGMODE } { putlog "\00304\[$MDS::scriptname - DEBUG\]\003 priv_sendmsg : $nick \00307|\003 $host \00307|\003 $hand \00307|\003 $arg" }
	MDS::check_identity $nick $host $hand $nick "priv" "send" $arg
}



ici c'est lorsque tu tape !msg .... sur salon la première proc
la seconde c'est en /msg
Répondre Avertir
#7
alias_angelius a écrit :ça se trouve ici :

tcl
###
### Un utilisateur veut envoyer un message
###
proc MDS::pub_sendmsg {nick host hand chan arg} {
	if { (![channel get $chan MDS]) || (($MDS::antiflood == 1) && ([MDS::antiflood [MDS::clean_data $chan] $hand "msg"])) } { return }
	if { $MDS::DEBUGMODE } { putlog "\00304\[$MDS::scriptname - DEBUG\]\003 pub_sendmsg : $nick \00307|\003 $host \00307|\003 $hand \00307|\003 $chan \00307|\003 $arg" }
	MDS::check_identity $nick $host $hand $chan "pub" "send" $arg
}
proc MDS::priv_sendmsg {nick host hand arg} {
	if { (($MDS::antiflood == 1) && ([MDS::antiflood [MDS::clean_data $nick] $hand "msg"])) } { return }
	if { ![onchan $nick] } {
		puthelp "$MDS::delivery_mode $nick :\003[set MDS::num_sec_color]Vous devez vous trouver sur un chan où $::botnick est présent pour utiliser la messagerie.\003"
		return
	}
	if { $MDS::DEBUGMODE } { putlog "\00304\[$MDS::scriptname - DEBUG\]\003 priv_sendmsg : $nick \00307|\003 $host \00307|\003 $hand \00307|\003 $arg" }
	MDS::check_identity $nick $host $hand $nick "priv" "send" $arg
}



ici c'est lorsque tu tape !msg .... sur salon la première proc
la seconde c'est en /msg

Merci alias_angelius je regarderais quand je serais rentré chez moi.
Répondre Avertir
#8
De rien je pense regarder aussi lorsque je serait prêt beintôt quand j'aurais terminer un truc Smile
Répondre Avertir
#9
Bonsoir,

J'ai tenté de rajouter cette ligne
tcl
if {[matchattr $nick Z]} { puthelp "$MDS::delivery_mode $nick :\003[set MDS::num_sec_color]Le pseudo demandé n'est pas enregistré"
}



dans la partie
tcl
###
### Un utilisateur veut envoyer un message
###
proc MDS::pub_sendmsg {nick host hand chan arg} {
   if { (![channel get $chan MDS]) || (($MDS::antiflood == 1) && ([MDS::antiflood [MDS::clean_data $chan] $hand "msg"])) } { return }
   if { $MDS::DEBUGMODE } { putlog "\00304\[$MDS::scriptname - DEBUG\]\003 pub_sendmsg : $nick \00307|\003 $host \00307|\003 $hand \00307|\003 $chan \00307|\003 $arg" }
   MDS::check_identity $nick $host $hand $chan "pub" "send" $arg
}
proc MDS::priv_sendmsg {nick host hand arg} {
   if { (($MDS::antiflood == 1) && ([MDS::antiflood [MDS::clean_data $nick] $hand "msg"])) } { return }
   if { ![onchan $nick] } {
      puthelp "$MDS::delivery_mode $nick :\003[set MDS::num_sec_color]Vous devez vous trouver sur un chan où $::botnick est présent pour utiliser la messagerie.\003"
      return
   }
   if { $MDS::DEBUGMODE } { putlog "\00304\[$MDS::scriptname - DEBUG\]\003 priv_sendmsg : $nick \00307|\003 $host \00307|\003 $hand \00307|\003 $arg" }
   MDS::check_identity $nick $host $hand $nick "priv" "send" $arg
}



J'ai aussi mis $hand à la place de $nick mais apparement ca verifie juste l'expediteur de la commande pas le destinataire. Je trouve pas comment faire pour que ca verifie que le pseudo tapé soit bien dans la liste du bot.
Répondre Avertir
#10
ta modifié ou montre la modification
Répondre Avertir
#11
Bon voilà après avoir tester 5 minutes :

tcl
###
### Un utilisateur veut envoyer un message
###
proc MDS::pub_sendmsg {nick host hand chan arg} {
	if { (![channel get $chan MDS]) || (($MDS::antiflood == 1) && ([MDS::antiflood [MDS::clean_data $chan] "msg"])) } { return }
        if {![matchattr $nick Z]} { puthelp "$MDS::delivery_mode $nick :\003[set MDS::num_sec_color] Le pseudo demandé n'est pas enregistré"
}
	if { $MDS::DEBUGMODE } { putlog "\00304\[$MDS::scriptname - DEBUG\]\003 pub_sendmsg : $nick \00307|\003 $host \00307|\003 $hand \00307|\003 $chan \00307|\003 $arg" }
	MDS::check_identity $nick $host $hand $chan "pub" "send" $arg
}



Voilà ce que ceci donne :

Citation :[09:49:06] (+alias_angelius|alias_angelius) !msg
[09:49:06] [Privé] Identifia (Identifia@49107090.com)
[09:49:08] (@Identifia) Syntaxe : !msg <destinataire>[,destinataire,...] <message> | Envoie un message à quelqu'un. Le message lui sera délivré dès qu'il manifestera sa présence sur un chan où se trouve Identifia, c'est à dire dès qu'on sera certain d'avoir toute son attention.

Le Privé :

Citation :[09:49:06] (Identifia) Le pseudo demandé n'est pas enregistré
Répondre Avertir
#12
alias_angelius a écrit :Bon voilà après avoir tester 5 minutes :

tcl
###
### Un utilisateur veut envoyer un message
###
proc MDS::pub_sendmsg {nick host hand chan arg} {
	if { (![channel get $chan MDS]) || (($MDS::antiflood == 1) && ([MDS::antiflood [MDS::clean_data $chan] "msg"])) } { return }
        if {![matchattr $nick Z]} { puthelp "$MDS::delivery_mode $nick :\003[set MDS::num_sec_color] Le pseudo demandé n'est pas enregistré"
}
	if { $MDS::DEBUGMODE } { putlog "\00304\[$MDS::scriptname - DEBUG\]\003 pub_sendmsg : $nick \00307|\003 $host \00307|\003 $hand \00307|\003 $chan \00307|\003 $arg" }
	MDS::check_identity $nick $host $hand $chan "pub" "send" $arg
}



Voilà ce que ceci donne :

Citation :[09:49:06] (+alias_angelius|alias_angelius) !msg
[09:49:06] [Privé] Identifia (Identifia@49107090.com)
[09:49:08] (@Identifia) Syntaxe : !msg <destinataire>[,destinataire,...] <message> | Envoie un message à quelqu'un. Le message lui sera délivré dès qu'il manifestera sa présence sur un chan où se trouve Identifia, c'est à dire dès qu'on sera certain d'avoir toute son attention.

Le Privé :

Citation :[09:49:06] (Identifia) Le pseudo demandé n'est pas enregistré

Là c'est si toi tu tapes la commande et que tu as un flag Z que ca te reponds ca ??
Répondre Avertir
#13
non c'est quand j'ai pas de flag Z que sa me répond ça
Ta tester ?
Répondre Avertir
#14
Oui, mais en fait c'est pas ca, je me suis peut etre mal expliqué lool.

En fait c'est pour le destinataire du message que je veux que ca verifie.

genre !msg picsou ceci est un test.

Que ca verifie si picsou est bien dans la liste des users du bot.

Car sinon de bases j'ai modifié les flags pour ceux qui sont autorisés à envoyer un message.
Répondre Avertir
#15
tcl
if {![validuser [lindex $arg 0]]} {
   putserv "PRIVMSG $nick :Ce pseudo n'est pas enregistré."
   return
}


C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir


Atteindre :


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