24/12/2008, 10:28
Babytigrou16 a écrit :au lieu de faire sa on peux pas faire une alias via le server pour faire /plainte (pseudo) (raison)On peut, mais ça n'a plus de rapport avec les eggdrops (première chose) et ça devient propre au serveur, la programmation sera donc différente selon l'ircd utilisé.
Sinon, voici le petit embryon de tcl que j'ai fait (il n'est pas testé, il n'est pas optimisé):
tcl
set backroom "#plainte";
set base "plaintes.txt";
bind msg - "plainte" plainte:sent
proc plainte:sent {nick uhost handle chan text} {
putserv "PRIVMSG $::backroom :\[Plainte\] \002$nick\002 signale: $text"
set fp [open $::base a]
puts $fp "$nickµ$text"
close $fp
putserv "NOTICE $nick :Votre plainte a été enregistrée"
}
bind pub - "!read" plainte:read
proc plainte:read {nick uhost handle chan args} {
if {[lindex $args 0] eq ""} {
return 0
} else {
set nb [lindex $args 0]
}
set fp [open $::base r]
set cpt 0
set data [read -nonewline $fp]
close $fp
foreach templine [split $data "\n"] {
incr cpt
if {$cpt == $nb} {
set line [split $templine "µ"]
set $user [lindex $line 0]
putserv "PRIVMSG $::backroom \002$user\002 => [lindex $line 1]"
return 1
}
}
putserv "PRIVMSG $::backroom Plainte $nb introuvable"
}
bind pub - "!del" plainte:del
proc plainte:del {nick uhost handle chan args} {
if {[lindex $args 0] eq ""} {
return 0
} else {
set nb [lindex $args 0]
}
set fp [open $::base r]
set cpt 0
set data [read -nonewline $fp]
close $fp
set fp [open $::base w]
foreach templine [split $data "\n"] {
incr cpt
if {$cpt != $nb} {
puts $fp $templine
}
}
close $fp
}