Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


[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.
#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.
#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
#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.
#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]
#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
#7
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.
#8
De rien je pense regarder aussi lorsque je serait prêt beintôt quand j'aurais terminer un truc :)
#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.
#10
ta modifié ou montre la modification
#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 :

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é
#12
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 ??
#13
non c'est quand j'ai pas de flag Z que sa me répond ça
Ta tester ?
#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.
#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 ;)
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  Système de bannissement d'utilisateur qui idle trop longtemps sur un salon d'aide mecmec 4 2,789 15/08/2019, 00:38
Last Post: CrazyCat
Sad Commande SAY pour Windrop [Résolu] tow 3 4,447 19/11/2012, 01:04
Last Post: aliasangelius
  Bot qui envoi un message perso qu'à moi [résolu] loulou7593 3 3,462 26/05/2009, 23:05
Last Post: loulou7593

Forum Jump:


Users browsing this thread: 1 Guest(s)