#PBC Official Forum  #PBC Official Forum
Noi Iti Protejam Chanu De LAMERI
#PBC Official Forum
FAQFAQ  CautareCautare  InregistrareInregistrare  ProfilProfil  MembriMembri  GrupuriGrupuri  Mesaje privateMesaje private  AutentificareAutentificare 

leave.tcl

 
Raspunde la subiect    Pagina de start a forumului #PBC Official Forum -> TCL Scripts
Subiectul anterior :: Subiectul urmator  
Autor Mesaj
Suparatu
Administrator
Administrator
Suparatu

Data inscrierii: 12/Mai/2008
Mesaje: 24

MesajTrimis: 17/05/2008 07:10    Titlul subiectului: leave.tcl Raspunde cu citat (quote)

if {![info exists leavefile]} {
set leavefile "leavefile"
set leavesetfile "leaveset"
}

bind pub - !leave pub_leave
bind pub - `leave pub_leave
bind pub - .leave pub_leave
bind part - *!*@* set_leave
bind msg - leave leave_set
bind dcc - leave leave_set_dcc


proc leave:replace { nick chan line } {
global botnick
if {[string match "*%nick%*" $line]} { regsub -all %nick% $line $nick line }
if {[string match "*%chan%*" $line]} { regsub -all %chan% $line $chan line }
return $line
}


proc set_leave {nick uhost hand chan text} {
global random_leave setleave botnick leave:replace

if {$botnick != $nick} {
if [channel get $chan leave] {
if {[info exists setleave([string tolower $chan])] && [lindex $setleave([string tolower $chan]) 0] != ""} {
set i $setleave([string tolower $chan])
puthelp "PRIVMSG $nick :[leave:replace $nick $chan $i]"

} {

foreach i [array names random_leave] {
if {[lsearch -exact [string tolower [channels]] [string tolower $i]] != -1} {
if {[lindex $random_leave([string tolower $i]) 0] != ""} {
set leave [lindex $random_leave($i) [rand [llength $random_leave($i)]]]
if {$chan == $i} {
puthelp "NOTICE $nick :$leave"
}
}
} {
unset random_leave($i)
}
}
}
}
}
}

proc leave_show_pub {nick uhost hand channel arg} {
global random_leave setleave botnick


if {![matchattr $hand m|m $channel]} {
putserv "PRIVMSG $channel :Sorry, you are not authorized to use this command."
return 0
}

if {[info exists setleave([string tolower $channel])] && [lindex $setleave([string tolower $channel]) 0] != ""} {
set i $setleave([string tolower $channel])
putserv "PRIVMSG $channel :\002leave Set to:\002 $i"
putserv "PRIVMSG $channel :Use leave SET $channel OFF if you want to turn it off."

}
putserv "PRIVMSG $channel :Type \002/msg $botnick leave HELP\002 for help."

return 1
}


proc leave_show {nick uhost hand arg} {
global random_leave setleave botnick

set channel [lindex $arg 0]
if {$channel == ""} {
putserv "PRIVMSG $nick :Usage: leave <channel>"
return 0
}

if {[lsearch -exact [string tolower [channels]] [string tolower $channel]] == -1} {
putserv "PRIVMSG $nick :I am not on ${channel}."
return 0
}

if {![matchattr $hand m|m $channel]} {
putserv "PRIVMSG $nick :Sorry, you are not authorized to use this command."
return 0
}

if {[info exists setleave([string tolower $channel])] && [lindex $setleave([string tolower $channel]) 0] != ""} {
set i $setleave([string tolower $channel])
putserv "PRIVMSG $nick :\002leave Set to:\002 $i"
putserv "PRIVMSG $nick :Use leave SET $channel OFF if you want to turn it off."

}


putserv "PRIVMSG $nick :Type \002/msg $botnick leave HELP\002 for help."

return 1
}

proc leave_show_dcc {hand idx arg} {
global random_leave setleave botnick

set channel [lindex $arg 0]
if {$channel == ""} {
putidx $idx "Usage: leave <channel>"
return 0
}


if {[lsearch -exact [string tolower [channels]] [string tolower $channel]] == -1} {
putidx $idx "I am not on ${channel}."
return 0
}

if {![matchattr $hand m|m $channel]} {
putidx $idx "Sorry, you are not authorized to use this command."
return 0
}

putidx $idx "leaves for \002$channel\002:"

if {[info exists setleave([string tolower $channel])] && [lindex $setleave([string tolower $channel]) 0] != ""} {
set i $setleave([string tolower $channel])
putidx $idx "\002leave Set to:\002 $i"
putidx $idx "Use leave SET $channel OFF if you want to turn it off."
}



putidx $idx "Type \002.leave HELP\002 for help."

return 1
}

proc leave_set_pub {nick uhost hand channel arg} {
global setleave

if {![matchattr $hand m|m $channel]} {
putserv "PRIVMSG $channel :Sorry, you are not authorized to use this command."
return 0
}
if {[string tolower [lindex $arg 1]] != "-off"} {
putserv "PRIVMSG $channel :leave set to: [lrange $arg 1 end]"
set setleave([string tolower $channel]) [lrange $arg 1 end]
} {
putserv "PRIVMSG $channel :leave set off $channel"
set setleave([string tolower $channel]) [lrange "" 1 end]
}

putlog "Writing leaves file..."
leave_write

return 1

}


proc leave_set {nick uhost hand arg} {
global setleave

set channel [lindex $arg 1]

if {$channel == ""} {
putserv "PRIVMSG $nick :Usage: leave SET <channel> <leave>"
putserv "PRIVMSG $nick :Or: leave SET <channel> OFF"
return 0
}

if {[lsearch -exact [string tolower [channels]] [string tolower $channel]] == -1} {
putserv "PRIVMSG $nick :I am not on ${channel}."
return 0
}

if {![matchattr $hand m|m $channel]} {
putserv "PRIVMSG $nick :Sorry, you are not authorized to use this command."
return 0
}

if {[string tolower [lindex $arg 1]] != "-off"} {
putserv "PRIVMSG $nick :leave set to: [lrange $arg 1 end]"
set setleave([string tolower $channel]) [lrange $arg 1 end]
} {
putserv "PRIVMSG $nick :leave set off $channel"
set setleave([string tolower $channel]) [lrange "" 1 end]
}

putlog "Writing leaves file..."
leave_write

return 1

}

proc leave_set_dcc {hand idx arg} {
global setleave

set channel [lindex $arg 2]

if {$channel == ""} {
putidx $idx "Usage: leave SET <channel> <leave>"
putidx $idx "Or: leave SET <channel> OFF"
return 0
}

if {[lsearch -exact [string tolower [channels]] [string tolower $channel]] == -1} {
putidx $idx "I am not on ${channel}."
return 0
}

if {![matchattr $hand m|m $channel]} {
putidx $idx "Sorry, you are not authorized to use this command."
return 0
}

if {[string tolower [lindex $arg 2]] != "-off"} {
putidx $idx "leave set to: [lrange $arg 1 end]"
set setleave([string tolower $channel]) [lrange $arg 2 end]
} {
putidx $idx "leave set off $channel"
set setleave([string tolower $channel]) [lrange "" 2 end]
}


putlog "Writing leaves file..."
leave_write

return 1

}
proc leave_load {} {
global random_leave setleave leavefile leavesetfile

if {[info exists random_leave]} {unset random_leave}
if {[catch {set fd [open $leavefile r]}] != 0} {return 0}
while {![eof $fd]} {
set inp [gets $fd]
if {[eof $fd]} {break}
if {[string trim $inp " "] == ""} {continue}
set channel [lindex $inp 0]
lappend random_leave([string tolower $channel]) [lrange $inp 1 end]
}
close $fd

if {[info exists setleave]} {unset setleave}
if {[catch {set fd [open $leavesetfile r]}] != 0} {return 0}
while {![eof $fd]} {
set inp [gets $fd]
if {[eof $fd]} {break}
if {[string trim $inp " "] == ""} {continue}
set channel [lindex $inp 0]
lappend setleave([string tolower $channel]) [lrange $inp 1 end]
}
close $fd



return 1
}

proc leave_write {} {
global leavefile random_leave setleave leavesetfile

set fd [open $leavefile w]
foreach channel [array names random_leave] {
if {[lsearch -exact [string tolower [channels]] [string tolower $channel]] != -1} {
if {[lindex $random_leave([string tolower $channel]) 0] != ""} {
foreach i $random_leave([string tolower $channel]) {
puts $fd "$channel $i"
}
}
}
}
close $fd

set fd [open $leavesetfile w]
foreach channel [array names setleave] {
if {[lsearch -exact [string tolower [channels]] [string tolower $channel]] != -1} {
if {[lindex $setleave([string tolower $channel]) 0] != ""} {
set i $setleave([string tolower $channel])
puts $fd "$channel $i"
}
}
}
close $fd

return 1
}


proc msg_leave {nick uhost hand arg} {
switch [string tolower [lindex $arg 0]] {
"set" {set r [leave_set $nick $uhost $hand $arg]}
"help" {set r [leave_help $nick $uhost $hand $arg]}
default {set r [leave_show $nick $uhost $hand $arg]}
}
return $r
}

proc pub_leave {nick uhost hand channel arg} {
switch [string tolower [lindex $arg 0]] {
"set" {set r [leave_set_pub $nick $uhost $hand $channel $arg]}
"help" {set r [leave_help_pub $nick $uhost $hand $channel $arg]}
default {set r [leave_show_pub $nick $uhost $hand $channel $arg]}
}
return $r
}


proc dcc_leave {hand idx arg} {
switch [string tolower [lindex $arg 0]] {
"set" {set r [leave_set_dcc $hand $idx $arg]}
"help" {set r [leave_help_dcc $hand $idx $arg]}
default {set r [leave_show_dcc $hand $idx $arg]}
}
return $r
}


leave_load

if {![info exists set_leave_running] && ![info exists random_leave] && ![info exists setleave]} {
set set_leave_running 1
}
Sus
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Raspunde la subiect    Pagina de start a forumului #PBC Official Forum -> TCL Scripts Ora este GMT + 2 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro