User-Info by dj Kenny
#1
Bonsoir a tous

je souhaiterais savoir comment je pourrais modifier cette tcl afin que chaque user puisse mettre leur info line sans etre obligatoirement inscrit dans le bot voir même si cela est possible que ce soit un owner ou un coach d'un salon qui puisse le faire

Voici la tcl en question
tcl
set ::uinfo(db) "scripts/userinfo.db"
 
bind msg -|- info uinfo:set
bind join - * uinfo:join
 
proc putinfo {arg} {
  putlog "\002\[User-Info\]\002 $arg."
}
 
if ![file exists $::uinfo(db)] {
  catch {open $::uinfo(db) w} pl
  catch {close $pl}
  putinfo "Création de la base de donnée ([pwd]/$::uinfo(db))"
}
 
proc uinfo:set {nick host hand arg} {
 global uinfo
  set arg [charfilter $arg]
  set chan [string tolower [lindex $arg 0]]
  set info [lrange $arg 1 end]
  if {[string index $chan 0]!="#" && $chan!="*"} {
    putserv "NOTICE $nick :\002Syntaxe :\002 /msg $::botnick INFO <#salon> ?votre info?"
    putserv "NOTICE $nick :Mettre * à la place du salon pour une info global. Pour supprimer l'info laisser la vide."
    return 0
  }
  set x 0
  set find 0
  catch {open $uinfo(db) r} pl
  while {![eof $pl]} {
    gets $pl data
    incr x
    set data [charfilter $data]
    if {$data!=""} {
      set h [lindex $data 0]
      set c [lindex $data 1]
      if {$h==$hand && $c==$chan} {
        set find 1
        del $uinfo(db) $x
      }
    }
  }
  catch {close $pl}
  if {$info!=""} {add $uinfo(db) "$hand $chan $info"} else {set find 2}
  set c [isglobalinfo $chan]
  if {$find==0} {
    set r "a été crée" 
  } elseif {$find==1} {
    set r "a été modifiée" 
  } elseif {$find==2} {
    set r "a été supprimée" 
  }
  putserv "NOTICE $nick :Votre info $c $r."
  putinfo "\002$hand\002 ($nick) vient de [lindex $r end] son info $c"
}
 
proc uinfo:join {nick host hand chan} {
 global uinfo
  set find 0
  catch {open $uinfo(db) r} pl
  while {![eof $pl]} {
    gets $pl data
    set data [charfilter $data]
    if {$data!=""} {
      set h [lindex $data 0]
      set c [lindex $data 1]
      if {$h==$hand && ([string tolower $c]==[string tolower $chan] || $c=="*")} {
        putquick "PRIVMSG $chan :\002\[[join $h]\]\002 [join [lrange $data 2 end]]"
        set find 1
      }
    }
  }
  catch {close $pl}
  if [validuser $hand] {
    if {$find==0} {putquick "PRIVMSG $chan :\002\[[join $hand]\]\002"}
    putquick "MODE $chan -v $nick"
  }
}
 
proc isglobalinfo {chan} {
  if {$chan=="*"} {return "global"} 
  return "sur $chan"
}
 
proc del {file line} {
  set i 0
  catch {open $file r+} p
  while {![eof $p]} {
    gets $p data
    incr i
    set data [charfilter $data]
    set vecteur($i) $data
  }
  catch {close $p}
  catch {open $file w+} p
  catch {close $p}
  catch {open $file a+} p
  set u 0
  while {$u <= $i} {
    incr u
    if {$u != $line} {
      if {[info exists vecteur($u)] && $vecteur($u) != ""} {
        puts $p [join $vecteur($u)]
      }
    }
  }
  catch {close $p}
}
 
proc add {file arg} {
  set arg [charfilter [join $arg]]
  catch {open $file a+} p
  puts $p [join $arg]
  catch {close $p}
}
 
proc charfilter {arg} {
  string map {"\\" "\\\\" "\{" "\\\{" "\}" "\\\}" "\[" "\\\[" "\]" "\\\]" "\"" "\\\""} $arg
}
 
putinfo "Info-User loaded"



Merci a vous bonne soirée
Répondre Avertir


Messages dans ce sujet
User-Info by dj Kenny - par zappeur78 - 22/10/2012, 21:39
RE: User-Info by dj Kenny - par Supa - 25/10/2012, 00:44
RE: User-Info by dj Kenny - par pheeric - 25/10/2012, 10:36
RE: User-Info by dj Kenny - par Supa - 25/10/2012, 17:58
RE: User-Info by dj Kenny - par zappeur78 - 25/10/2012, 22:06
RE: User-Info by dj Kenny - par pheeric - 25/10/2012, 23:12
RE: User-Info by dj Kenny - par djkenny - 26/10/2012, 04:43
RE: User-Info by dj Kenny - par aliasangelius - 26/10/2012, 08:48
RE: User-Info by dj Kenny - par zappeur78 - 26/10/2012, 16:23
RE: User-Info by dj Kenny - par djkenny - 27/10/2012, 12:32
RE: User-Info by dj Kenny - par aliasangelius - 29/10/2012, 13:23

Atteindre :


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