+- Communauté Eggdrop (https://forum.eggdrop.fr)
+-- Forum : Eggdrop et scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum : Scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Sujet : soucis sur un bind join. (/showthread.php?tid=1060)
soucis sur un bind join. - aliasangelius - 22/10/2011
Bonjour,
Voila je travail actuellement sur un tcl d'autorisation.
C'est à dire, si tel pseudo et dans le fichier db, il ne sera pas exclu.
Au contraire s'il n’est pas dans le fichier db, il sera exclu du salon.
Mon soucis et lorsque je suis dans le fichier db, il reconnaît bien et applique bien les modes qu'il faut.
Et lorsque je ne suis pas dedans, il dit juste la phrase ou je ne suis pas autorisé, et n'applique aucun mode +b ainsi que le kick.
Je ne vois pas trop comment faire.. Si quelqu'un aurait une idée, ou me signalé à quel endroit et mon erreur.
S’il vous plaît merci.
RE: soucis sur un bind join. - CrazyCat - 22/10/2011
Que donne un "set errorInfo" ?
Qu'obtiens-tu en party-line si tu utilises des putlog plutôt que des putserv ?
Et trois remarques:
- putserv "mode $::autorise::salonop +b $hostmask" <-- c'est pour bannir !*@*host.a.bannir ? J'ai un petit doute sur $hostmask
- newchanban pour poser un ban, c'est mieux
- pushmode pour traiter les modes, c'est mieux.
RE: soucis sur un bind join. - aliasangelius - 22/10/2011
un set errorInfo donne rien vus qui na pas d'erreur en Pl.
Ensuite le $hostmask donne ceci sur tout les bans : [08:55:03] [Mode] Talk-Me met +bbb *!*@*1619623353.fr alias_angelius!*@* alias_angelius|*!*@*
Après concernant les putlog j'ai fait ça et j'ai ceci comme retour :
Citation :[10:38:34] [Join] alias_angelius [Admin@761501953.fr] a rejoint #back-talk-me
[10:38:40] (@Talk-Me) Autorisation refusé pour alias_angelius
Et aucun ban.. rien.
pour ce qui concerne la PL voici ce que sa donne :
tout ça j'ai de ce tcl sauf que j'ai mit juste la partit du code ou j'avais un souci a l'epoque. mais libre a toi de crée cela si cette proc te convient a réaliser ton projet
RE: soucis sur un bind join. - djkenny - 22/10/2011
Salut,
je vais encore me répéter mais bon,
Pourquoi aller trifouiller dans le fichier à chaque fois?
bref, voila le tcl que j ai codé il y a quelques temps maintenant et que tu cherches a reproduire:
tcl
namespaceeval autorise {variable salons "#test"variable data
variablefile[filejoin scripts autorised.db]if![file exists $file]{catch{open$file w+} p
catch{close$p}}set data ""catch{open$file r} p
while{![eof$p]}{if{[gets$p d]!=""}{lappend data $d}}catch{close$p}
unset p
bind evnt - save autorise::save_fileproc save_file {type}{variable data
variablefileif{$data==""}returncatch{open$file w+} p
foreach d $data{if{$d!=""}{puts$p[join$d]}}catch{close$p}
putlog "Sauvegarde du fichier autorised.db"}proc stgcomp {arg1 arg2}{string equal -nocase $arg1$arg2}proc hostcomp {host1 host2}{string match -nocase [string map {"\["".""\]"","}[join$host1]][string map {"\["".""\]"","}[join$host2]]}
#################################
bind pub - .+autorise autorise::add
bind pub - .-autorise autorise::del
bind join - * autorise::join_chanproc add {nick host hand chan arg}{variable data
variable salons
if{[lsearch -nocase $salons$chan]==-1}returnif{[llength$arg]!=1}{puthelp "NOTICE $nick :syntaxe: .+autorise <pseudo>";return}foreach d $data{if{[stgcomp [lindex$d0]$chan]&&[stgcomp [lindex$d1]$arg]}{
putserv "NOTICE $nick :ce pseudo est déjà autorisé sur $chan."return}}lappend data [string tolower "$chan $arg"]
putserv "NOTICE $nick :$arg est a été ajouté sur $chan."}proc del {nick host hand chan arg}{variable data
variable salons
if{[lsearch -nocase $salons$chan]==-1}returnif{[llength$arg]!=1}{puthelp "NOTICE $nick :syntaxe: .-autorise <pseudo>";return}set x 0set y 0foreach d $data{if{[stgcomp [lindex$d0]$chan]&&[stgcomp [lindex$d1]$arg]}{set data [lreplace$data$x$x]incr y
}incr x
}if$y{
putserv "NOTICE $nick :$arg est a été supprimé sur $chan."}else{
putserv "NOTICE $nick :$arg n'est pas autorisé sur $chan."}}proc join_chan {nick host hand chan}{variable data
variable salons
if[isbotnick $nick]returnif{[lsearch -nocase $salons$chan]==-1}returnif[string match *|*$nick]{set n [lindex[split$nick |]0]}else{set n $nick}set k 1foreach d $data{if![stgcomp [lindex$d0]$chan]continueif[hostcomp [lindex$d1]$n]{set k 0;break}}if$k{
putquick "PRIVMSG $chan :Authentification \00304°\00314Refusée\00304°\00314 pour \002$nick"
putquick "MODE $chan +b *!$host"
putquick "KICK $chan $nick :Accès refusé."}else{
putquick "PRIVMSG $chan :Authentification \00303°\00314Acceptée\00303°\00314 pour \002$nick"
puthelp "MODE $chan +v $nick"}}}
RE: soucis sur un bind join. - aliasangelius - 22/10/2011
... ouais j'avait oublier que entraide = tu fou rien et voilà le tout.
secondement je cherche à rien reproduire je veux faire ça car quelqu'un me l'avait demander.
Ensuite chaque chose dans ton code comme par exemple : stgcomp je comprend pas.
Et moi je veux pas un truc préfait c'est pas mon but que j'ai fait le post.
C'est une aide à comprendre et non je te file mon tcl voilà même si tu comprend pas on s'en fou tu en à un de fait..
Mes félicitations.
RE: soucis sur un bind join. - djkenny - 22/10/2011
mais de rien, je mettais ça en exemple, j pensais que t'étais capable de lire et comprendre un code (surtout qu'il n'a rien de compliqué et après tout le msgcat est tiré d'un de mes tcl), mais apparemment je me suis trompé.
bref, prochain coup tu iras te gratter :)
RE: soucis sur un bind join. - aliasangelius - 23/10/2011
Non le msgcat et l'exemple d'un des codes de CrazyCat.
Et ont en avait parlé sur irc.
Ensuite je ne dis pas que c'est compliqué ton code juste certaines variables je ne les connais pas.
Et le système que je veux faire j'aimerais faire une seul proc qui appel tout, dont l'ajout,del,liste.
Après ton code je le connais puisqu'il était sur le site de Che un moment donnais..
Et ensuite je peux me gratter comme tu le sous entend mais la différence c'est que moi je cherche à concevoir quelque chose et non quelqu’un qui me fasse tout.. Je penser que tu n’aimer pas faire tout ya une époque non ?
Bref nous ne sommes pas ici pour se prendre la tête etc.. Mais je pense que ma façon de dire j'aimerais le réussir des aides je ne dis pas,mais un code complet ce n’est pas vraiment ma demande Dj_KennY.