Help with Hostserv script

Help for those learning Tcl or writing their own scripts.
Post Reply
m
martpen69
Voice
Posts: 32
Joined: Mon Jun 20, 2005 3:56 pm

Help with Hostserv script

Post by martpen69 »

Hello to start im not sure where I got this script from so I cant give proper credit to the author. The script works fine it opers up and sets the host on command the only niggly thing is that it does everything twice. Ive looked over the thing and cant see whats wrong I was thinking it was something to do with the other language maybe but im a newbie so some help would be great

Thanks

Code: Select all


#set this to channel
set scan(chan) "#vhost"
# Set this to the bot's O-Line username #
set oper(username) "*****"
# Set this to the bots O-Line password #
set oper(password) "********"
# Set here the words that are not alowed in the vhost #
set dvb_badvhost {
	"*admin*"
	"*bitch*"
	"*operator*"
	"*ircop*"	
	"*FutureForce*"
	"*Future*"
	"*C0mPl3x*"
	"*ComPlex*"
	"*Marro*"
	"*Maro*"
	"*netadmin*"
	"*N3TADM1N*"
	"*H0RR0R*"
	"*NETADMIN*"
}



## dont change below unless your know what your doing ##

bind msg o oper oper-up
bind join - "$scan(chan) *" tls:join
bind raw - 307 tls:ident
bind pub -|- !vhost tls:vhost
bind evnt - init-server oper:connect

proc oper:connect init-server {
putserv "OPER $::oper(username) $::oper(password)"
}

proc oper-up {nick host chan text} {
  global operid operpass owner2
  putserv "OPER $::oper(username) $::oper(password)"
  putserv "NOTICE $nick : I Opered up"
}

proc tls:join {nick host hand chan} {
 global tls_nick tls_ident
  set tls_ident "1"
  set tls_nick $nick  
  putserv "WHOIS $nick"
  utimer 3 tls:not:ident
}

proc tls:vhost {nick host hand chan vhost} {
 global tls_nick tls_ident tls_vhost scan(chan)
	  if {$chan != "#vhost"} {
		putserv "NOTICE $tls_nick : Don't Use This Command Outside #vhost"
		return 0
	}
 if {$vhost == ""} {
 if {$chan == "#vhost"} {
	putserv "NOTICE $tls_nick : With the command 4!VHOST you can make a vhost."
	putserv "NOTICE $tls_nick : Do it this way, !vhost This.is.my.vhost.com ."
	putserv "NOTICE $tls_nick : You can only use this service if you have your nick registered and identified"
	putserv "NOTICE $tls_nick : For more information type /msg nickserv HELP"
	putserv "NOTICE $tls_nick : 4  "
	return 0
	}
		putserv "NOTICE $tls_nick : Met het commando 4!VHOST kan u een vhost instellen."
		putserv "NOTICE $tls_nick : Dit commando kunt u echter alleen gebruiken in #vhost"
		return 0
	}

  set tls_ident "2"
  set tls_vhost [lindex $vhost 0]
  set tls_nick $nick  
  putserv "WHOIS $nick"
  utimer 3 tls:not:ident
}

proc tls:ident {from key args } {
 global tls_ident tls_nick tls_vhost
  set args [join $args]
  set nick [string tolower [lindex $args 1]]
  set regist [strlwr [lindex [lrange [split $args ":"] 1 end] 0]]
  if {$tls_ident == "1" && $regist == "is a registered nick"} {
    foreach j [utimers] {
        if {[lindex $j 1] == "tls:not:ident"} { killutimer [lindex $j 2] }
      }
   putserv "PRIVMSG #vhost :$nick your nick is registered and identified use !vhost <vhost>"
   }
  if {$tls_ident == "2" && $regist == "is a registered nick"} {
    foreach j [utimers] {
        if {[lindex $j 1] == "tls:not:ident"} { killutimer [lindex $j 2] }
   }

global dvb_badvhost
set temp 0
foreach i [string tolower $dvb_badvhost] {
if {[string match $i [string tolower $tls_vhost]]} {
set temp 1
  putserv "NOTICE $tls_nick : Your vhost is not changed 3$tls_vhost3"
  putserv "NOTICE $tls_nick : Its not a valid vhost 3$tls_vhost3"
  return 0
}
}


  putserv "PRIVMSG hostserv : set $tls_nick $tls_vhost"
  putserv "PRIVMSG hostserv : set $tls_nick $tls_vhost"
  putserv "NOTICE $tls_nick : Your vhost is changed in 3$tls_vhost3"
  putserv "NOTICE $tls_nick : Type /msg hostserv on "

  } 
  return 0
}

proc tls:not:ident {} {
 global tls_nick
 putserv "PRIVMSG #vhost :$tls_nick is: is not registered or identified"
 putserv "PRIVMSG #vhost :Type: 4/MSG nickserv HELP for info how to register and identify you nick."
}


 putlog "vhost was successfully loaded."


User avatar
Sir_Fz
Revered One
Posts: 3793
Joined: Sun Apr 27, 2003 3:10 pm
Location: Lebanon
Contact:

Post by Sir_Fz »

For example? what's done twice?
m
martpen69
Voice
Posts: 32
Joined: Mon Jun 20, 2005 3:56 pm

Post by martpen69 »

sorry

onjoin the bot will whois the user twice
below is the output
[4:22pm] <~RaM-PaCk> big-r0n your nick is registered and identified use !vhost <vhost>
[4:22pm] <~RaM-PaCk> big-r0n your nick is registered and identified use !vhost <vhost>
[4:24pm] <&BiG-R0N> !vhost something@haha.com
[4:24pm] *RaM-PaCk* Your vhost is changed in something@haha.com
[4:24pm] *RaM-PaCk* Type /msg hostserv on
[4:24pm] *RaM-PaCk* Your vhost is changed in something@haha.com
[4:24pm] *RaM-PaCk* Type /msg hostserv on
thanks
User avatar
Sir_Fz
Revered One
Posts: 3793
Joined: Sun Apr 27, 2003 3:10 pm
Location: Lebanon
Contact:

Post by Sir_Fz »

The format of your script makes it hard to read, if you wrote that script then you can find the problem easier than anyone else. Follow what's happening in the script and see if you can find out. Also, make sure you don't have some other similar script loaded (or was loaded but you changed the binds and .rehashed which doesn't remove the old script).
Post Reply