Communauté sur les Eggdrops - Community about Eggdrops
[Résolu] Laisser un message pour un utilisateur - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (https://forum.eggdrop.fr)
+-- Forum: Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum: Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Thread: [Résolu] Laisser un message pour un utilisateur (/showthread.php?tid=1098)

Pages: 1 2


[Résolu] Laisser un message pour un utilisateur - loulou7593 - 23/12/2011

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.


RE: Laisser un message pour un utilisateur - aliasangelius - 24/12/2011

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.


RE: Laisser un message pour un utilisateur - loulou7593 - 24/12/2011

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


RE: Laisser un message pour un utilisateur - aliasangelius - 24/12/2011

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.


RE: Laisser un message pour un utilisateur - loulou7593 - 24/12/2011

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]


RE: Laisser un message pour un utilisateur - aliasangelius - 24/12/2011

ç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


RE: Laisser un message pour un utilisateur - loulou7593 - 25/12/2011

alias_angelius Wrote:ç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.


RE: Laisser un message pour un utilisateur - aliasangelius - 25/12/2011

De rien je pense regarder aussi lorsque je serait prêt beintôt quand j'aurais terminer un truc :)


RE: Laisser un message pour un utilisateur - loulou7593 - 27/12/2011

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.


RE: Laisser un message pour un utilisateur - aliasangelius - 28/12/2011

ta modifié ou montre la modification


RE: Laisser un message pour un utilisateur - aliasangelius - 28/12/2011

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 :

Quote:[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é :

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



RE: Laisser un message pour un utilisateur - loulou7593 - 28/12/2011

alias_angelius Wrote: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 :

Quote:[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é :

Quote:[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 ??


RE: Laisser un message pour un utilisateur - aliasangelius - 28/12/2011

non c'est quand j'ai pas de flag Z que sa me répond ça
Ta tester ?


RE: Laisser un message pour un utilisateur - loulou7593 - 28/12/2011

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.


RE: Laisser un message pour un utilisateur - djkenny - 29/12/2011


tcl
if {![validuser [lindex $arg 0]]} {
   putserv "PRIVMSG $nick :Ce pseudo n'est pas enregistré."
   return
}