Un welcome Gardé en mémoire
#1
Bonjour voila j'ai un soucis car je veux configurer un Welcome pour que quand chaque users rentre sur le salon ca lui envoi un Welcome que moi ou quelqu'un qui a acces au bot puisse configurer ce Welcome avec la commande !welcome.

J'ai bien quelque chose qui fonctionne, mais pour que cela fonctionne il me faut mettre deux code TCL different car l'un sans l'autre ca ne fonctionne pas.

Et le principal probleme c'est que je voudrais que ce Welcome soit gardé en Memoire car là à chaque .rehash et bien le Welcome disparait.
Voici les deux TCL

TCL
set onjoin_msg {
 {
  "Welcome to Channel \$chan \$nick"
 }
}
set onjoin_chans "#BG® #eg-lovech"
 
bind join - * join_onjoin
 
putlog "Onjoin.tcl 0.1 by Banned loaded"
 
proc join_onjoin {nick uhost hand chan} { 
global onjoin_msg onjoin_chans botnick 
if {([lsearch -exact [string tolower $onjoin_chans] [string tolower $chan]] != -1) && (![matchattr $hand b]) && ($nick != $botnick)} { 
puthelp "NOTICE $nick :[subst $onjoin_msg]" 
} 
}


Le deuxieme
TCL
bind pub - !welcome pub:welcome 
proc pub:welcome {nick uhost hand channel text} { 
global onjoin_msg 
      if {[validuser $hand] && ($text != "")} { 
         set onjoin_msg "$text" 
        putserv "NOTICE $nick :Nouveau message d'acceuil -> $text" 
      } else { 
        putserv "NOTICE $nick :Erreur..." 
   } 
}



Voila donc je Récap , je veux qu'en tapant !welcome moi ou les gens qui ont acces sur le bot puisse configuré un Welcome et qu'il soit gardé en mémoire.

Merci d'avance
Répondre Avertir
#2
Bon, le soucis est essentiellement qu'un rehash vide les variables, tu dois donc stocker le message dans un fichier ou dans une variable qui sera sauvegardée automatiquement.

Cette deuxième solution pourrait être intéressante, en utilisant setudef qui permet d'enregistrer une donnée dans les paramètres de canal.

Voila ce que je te propose:
TCL
setudef str welcomemsg
 
bind pub -|o "!welcome" welcome:set
proc welcome:set {nick uhost handle chan text} {
   channel set $chan welcomemsg [join [split $text]]
   putserv "PRIVMSG $nick :Nouveau message d'accueil pour $chan: $text"
}
 
bind join - "*" welcome:join
proc welcome:join {nick uhost handle chan} {
   if {[channel get $chan welcomemsg]!=""} {
      puthelp "NOTICE $nick :[channel get $chan welcomemsg]"
   }
}


Bon, c'est pas testé mais ça doit fonctionner à peu près.
Et l'avantage est que tu enregistres dans les paramètres de chaque canal son message d'accueil.
Répondre
#3
Merci pour le code, mais je voulais savoir, comment faire car la j'ai donc enlevé les deuc que j'avais avant, j'ai mis le tient, mais quand je tape !welcome MESSAGE bin rien ne se passe .

Y a t'il quelque chose qu'il faut je fasse d'autre ?

Merci de me renseigner
Répondre Avertir
#4
Comme dit sur IRC (ou sur ircz.fr?), il faut que tu sois déclaré opérateur sur le canal (dans l'eggdrop)
Répondre
#5
donc cela veux dire que moi je ne peux pas le faire car je suis Admin du bot ???
Répondre Avertir
#6
Autrement, tu change -|o par A|A et ensuite en party line tu tape: .chattr tonpseudo +A et la tu poura t'en servire.
Répondre Avertir
#7
Ok donc à tous ceux que je ferais un acces sur mon bot je leur mets le Flag +a pour qu'il puissent s'en servir aussi ?

Merci de la reponse
Répondre Avertir
#8
loulou7593 a écrit :donc cela veux dire que moi je ne peux pas le faire car je suis Admin du bot ???
Non, ça veut dire que tu ne peux pas parce que tu ne t'es pas déclaré opérateur du canal (chattr loulou +o #canal)

NuNuX a écrit :Autrement, tu change -|o par A|A et ensuite en party line tu tape: .chattr tonpseudo +A et la tu poura t'en servire.
Ou juste -|A
loulou7593 a écrit :Ok donc à tous ceux que je ferais un acces sur mon bot je leur mets le Flag +a pour qu'il puissent s'en servir aussi ?
Tout d'abord, c'est +A, pas +a
Mais là ça n'agit que sur un canal donné.
Il faudrait peut-être que tu te renseignes plus sur les flags des utilisateurs (http://www.eggdrop.fr/Flags)
Répondre
#9
Ok je vais jeter un petit coup d'oeil sur les Flags.

Merci de vos réponses
Répondre Avertir
#10
Bonjour
j'ai bien regarder le site avec les Flags, il y a bien des +a mais aucun +A

+a correspondrais à auto-op

alors que là on me demande de mettre +A ??
Répondre Avertir
#11
Oui, c'est le principe: tu assignes un flag qui n'est pas utilisé et tu t'en sers comme tu veux.
Les flags qui sont dans la liste sont réservés, c'est donc ceux que tu ne peux pas utiliser à ton bon vouloir.
Répondre


Atteindre :


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