###########################################
#
# Channel invite 0.1 BETA
# Scripted by Dreamer
#
###########################################
#
# Type /msg <botnick> @add <nick> <pass>
# to add someone to the database
# Type /msg <botnick> @invite <nick> <pass>
# to get invited in to channel
#
# History:
# 0.1: First version
#
###########################################
# EDIT FROM HERE
# Channel where the bot wil invite
set chan_1 "#TCG"
# Name of the database
set db scripts/chan.invite
# STOP EDITING FROM HERE
set ver "0.1"
bind msg n add add_1
bind msg - invite inv_1
putlog "Channel invite $ver by Dreamer loaded"
# Script starts now
proc add_1 { nick uhost hand args } {
global chan_1 db
set args [split $args " "]
set user [lindex $args 0]
set user [string range $user 1 end]
set pass [lindex $args 1]
set pass [string range $pass 0 end-1]
if { $user == "" || $pass == "" } {
putserv "PRIVMSG $nick :Please instert a Nickname and a password"
return 0
}
set up $user|$pass
set wfile [open $db a+]
puts $wfile $up
close $wfile
putserv "PRIVMSG $chan_1 :\002\[\0039DB-UPDATE\003\]\002 + \002$user\002 is added to INVITE-Database by \002$nick\002"
}
proc inv_1 { nick uhost hand arg } {
global chan_1 db
set found 0
set arg [split $arg " "]
set user1 [lindex $arg 0]
set user1 [string range $user1 0 end]
set pass1 [lindex $arg 1]
set pass1 [string range $pass1 0 end]
set up1 $user1|$pass1
set found 0
set fs [open $db r]
while {![eof $fs]} {
gets $fs line
if {$line == $up1} { set found 1 }
}
close $fs
if {$found} {
putserv "PRIVMSG $chan_1 :\002\[\0039INVITE\003\]\002 - \002$user1\002 invited himself as \002$nick\002"
putserv "invite $nick $chan_1"
} else {
putserv "PRIVMSG $nick :Wrong pass or username !!!!"
putserv "PRIVMSG $chan_1 : \002\[\0034INTRUDER\003\]\002 - $nick tried to get in the channel with wrongpass or username"
}
}
Can a command be added to delete nicks I dont want to be in the invite-db annymore? Something like:
I'm newbie in tcl but I want to learn, thats why I'm trying. This code is untested and could be wrong (I'm fast sure that it is wrong), use it on your own risk !
proc del_1 [nick uhost hand args } {
global chan_1db
set args [split $args " "]
set user [lindex $args 0]
set user [string range $user 1 end]
set pass [lindex $args 1]
set pass [string range $pass 0 end-1]
set deluser $user|$pass
set found 0
set wfile [open $db a+]
while {![eof $wfile]} {
gets $wfile line
if {$line == $deluser} {
delete $deluser
set found 1
}
}
close $wfile
if {$found} {
puthelp "NOTICE $nick : \002\[\0039DB-UPDATE\003\]\002 + \002$user\002 is deleted successful from INVITE-Database"
} else {
puthelp "NOTICE $nick :The username was not found in the Database"
}
}
Thank you, this was actually a type error...
But I think this isn't the problem. I wasn't very sure, what I have to do if I want to erase a line in some text file. I tried to search tcl.tk but I found nothing and I just writed:
but I think, that this insn't the right syntax, it could be better if I add just -. instead of erasing the whole line. Hmm how I said I'm not very sure for the syntax.