I just installed AC.tcl on my egg but doesn't wanna work properly and it gives me an error in telnet: Tcl error [ac:check]: can't read "user_names": no such variable
The code:
Code: Select all
############ BINDS #################
set counter ""
bind dcc n adduser ac:adduser
bind dcc n remuser ac:remuser
bind dcc n listusers ac:list
# bind notc - "*does not wish to be added to channels*" ac:noadduser
bind notc - "USER: * ACCESS: *" ac:get_user
bind notc - "*SUSPENDED*" ac:block_user
bind notc - "LAST SEEN: *" ac:last_seen
bind notc - "LAST MODIFIED: * ago*" ac:modify_check
bind time - "* * * * *" ac:check
proc ac:list { handle idx text } {
global ac botnick user_names
putdcc $idx "Current users: $user_names"
}
proc ac:check { min hour day month year } {
global ac user_names counter
ac:get_list
if {$counter == ""} { set counter "-1" }
if {[lindex $user_names $counter] == ""} { set counter "-1" }
incr counter
if {[lindex $user_names $counter] == ""} { return }
puthelp "PRIVMSG X :ACCESS $ac(chan) [lindex $user_names $counter] -modif"
}
proc ac:get_user {nick uhost hand text dest } {
global botnick ac xaccess xusername
if {$nick != "X"} { puthelp "PRIVMSG $ac(chan) :Nickanme: $nick"; return }
set text [split $text]
set xusername [lindex $text 1]
set xaccess [lindex $text 3]
}
proc ac:block_user {nick uhost hand text dest} {
set xaccess "399"
}
proc ac:last_seen {nick uhost hand text dest} {
global lastseen
set text [split $text]
set lastseen [lindex $text 2]
}
proc ac:modify_check {nick uhost hand text dest } {
global botnick ac xaccess xusername who_main day_main lastseen
set text [split $text]
set who_mod [lindex $text 2]
set day_mod [lindex $text 4]
set prim_1 $who_mod$day_mod
set prim_1 [split $prim_1 ")("]
set prim_1_1 [lindex $prim_1 0]
set day_main [lindex $prim_1 3]
set who_main [lindex $prim_1 1]
ac:recap $xaccess $xusername $who_main $day_main $lastseen
}
proc ac:recap { xaccess xusername who_main day_main lastseen } {
global ac user_names notifyusers
if {[string tolower $who_main] != [string tolower $ac(bot_username)] && [string tolower $who_main] != [string tolower $ac(owner_username)]} { return }
if {$lastseen >= 2} { return }
if {$xaccess == "399"} { return }
if {$day_main == "0"} { return }
puthelp "PRIVMSG X :MODINFO $ac(chan) ACCESS $xusername [expr $xaccess + 1]"
if {$notifyusers != "" && $notifyusers != " "} {
foreach notfuser $notifyusers {
sendnote IDA_SYSTEM $notfuser "Modified +1 Access Level to $text in $ac(chan)."
}
}
}
proc ac:noadduser { nick uhost hand text dest } {
global noadduser
set text [split $text]
set noadduser [lrange $text 1 end]
}
proc ac:adduser { handle idx text } {
ac:get_list
global ac user_names notifyusers oprules reason noadduser
if {$text == ""} { putdcc $idx "Syntax: .adduser <CService username>"; return }
foreach arg $user_names {
if {[string tolower $arg] == [string tolower $text]} {
putdcc $idx "Username $text already exists!"
return
}
if {$arg == ""} { continue }
}
set victim " "
set maskhost *@$text.users.undernet.org
foreach nick [chanlist $ac(chan)] {
if [string match -nocase $maskhost [getchanhost $nick $ac(chan)]] {
set victim $nick
break
}
}
if {![llength $victim]} {
putdcc $idx "$text with host $maskhost is not on $ac(chan) or not logged in X with +x mode."
} {
lappend user_names $text
puthelp "PRIVMSG X :ADDUSER $ac(chan) $text 1"
# if {[string match "*wish to be added to channels at this*" $noadduser]} { putdcc $idx "$text does not wish to be added to channels at this time. Turn the noadduser off."; return}
adduser $text *!*@$text.users.undernet.org
chattr $text +fp|+fo $ac(chan)
chattr $text |+fo $ac(backchan)
putkick $ac(chan) $victim $reason
putdcc $idx "Username $text added!"
foreach line $oprules { puthelp "PRIVMSG $victim :$line" }
sendnote IDA_SYSTEM $notifyusers "Added Username $text in $ac(chan) by $handle."
}
ac:write_acdb
}
proc ac:remuser { handle idx text } {
ac:get_list
global ac user_names found notifyusers
if {$text == ""} { putdcc $idx "Syntax: .remuser <CService username>"; return }
foreach arg $user_names {
if {[string tolower $arg] != [string tolower $text]} {
lappend user_names2 $arg
set found 0
continue
}
if {[string tolower $arg] == [string tolower $text]} {
set found 1
continue
}
if {$arg == ""} { continue }
}
if {!$found} { putdcc $idx "Username $text does not exist!"; unset user_names2; return }
set user_names $user_names2
unset user_names2
puthelp "PRIVMSG X :REMUSER $ac(chan) $text"
deluser $text
putdcc $idx "Username $text deleted!"
if {$notifyusers != "" && $notifyusers != " "} {
foreach notfuser $notifyusers {
sendnote IDA_SYSTEM $notfuser "Removed Username $text in $ac(chan) by $handle."
}
}
ac:write_acdb
}
proc ac:get_list { } {
global user_names
if {[file exists acdb.dat]} {
set acdb [open acdb.dat r]
while {![eof $acdb]} {
gets $acdb ac_line
if {$ac_line == ""} { continue }
set user_names $ac_line
close $acdb
break
}
}
}
proc ac:write_acdb { } {
global ac user_names
set acdb2 [open acdb.dat w]
puts $acdb2 $user_names
close $acdb2
}
putlog "Access increasing script v1.0 by iamdeath loaded! \[ac.tcl\]"
# End of code
Can you please help me out with this error ?