This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Extra words after "else" clause in "if"

Old posts that have not been replied to for several years.
Locked
User avatar
awyeah
Revered One
Posts: 1580
Joined: Mon Apr 26, 2004 2:37 am
Location: Switzerland
Contact:

Extra words after "else" clause in "if"

Post by awyeah »

Hi,

I have this script it is a clone detector and a channel locker script.
I am having problems with else and if statements, if someone could
help me with the error it would be greatful.

Code: Select all

Tcl error [clonejoin]: wrong # args: extra words after "else" clause in "if" command

Code: Select all

bind join - * clonejoin


proc clonejoin {nick uhost hand chan} {
	global cp_chans cp_j_flood cp_jp_flood cp_btime cp_host_count cp_uh_count clonebantime
	set uhost [string tolower $uhost]
	set host [lindex [split $uhost @] 1]
	set chan [string tolower $chan]
      set banmask "*!*@[lindex [split $uhost @] 1]"
	set joinpartsplit [lindex [split $cp_j_flood ":"] 0]; set joinparttimes [lindex $joinpartsplit 0]; set joinpartsecs [lindex $joinpartsplit 1]
  	if {(([lsearch -exact [split [string tolower $cp_chans]] [string tolower $chan]] == -1) || ($cp_chans == "*"))} {return 0}
	if {![info exists cp_host_count($host:$chan)]} {
		set cp_host_count($host:$chan) 1
	} else {
		incr cp_host_count($host:$chan)
	}
	utimer [lindex $cp_j_flood 1] [list cp_expire cp_host_count($host:$chan)]
	if {$cp_host_count($host:$chan) > [lindex $cp_j_flood 0]} {
	 newchanban $chan *!*@$host clones "2(Excessive Clones 12from:6 *!*@$host2)" 30
 	   if {[botisop $chan]} {
	       enforce:flood:mlock $chan
	 	 putquick "KICK $chan $nick :2(Excessive Clones 12from:6 *!*@$host2)" -next
             utimer 1 [list scan:remove:clones $banmask $host $nick $chan]
	 	 }
    	}
	if {![info exists cp_uh_count($uhost:$chan)]} {
		set cp_uh_count($uhost:$chan) 1
	} else {
		incr cp_uh_count($uhost:$chan)
	}
	utimer [lindex $cp_jp_flood 1] [list cp_expire cp_uh_count($uhost:$chan)]
	if {$cp_uh_count($uhost:$chan) >= [expr [lindex $cp_jp_flood 0]*2]} {
	 newchanban $chan *!*@$host clones "2(Excessive Clones 12from:6 *!*@$host2)" 30
 	   if {[botisop $chan]} {
		enforce:flood:mlock $chan; set list [list]
	      putquick "KICK $chan $nick :2(Excessive Clones 12from:6 *!*@$host2)" -next
		foreach user [chanlist $chan] {
	       if {[string equal -nocase $user $nick]} { continue }
	       if {[string match -nocase $banmask "${nick}![getchanhost $user $chan]"]} { lappend list $user }
		 }
      	putquick "KICK $chan [join $list {,}] :0,1 Mass Join/Part Flood Kick 12,0 - 12Detected 2multiple 12clients cycling in here with the 2host6 $banmask 12performing2 $joinparttimes 12or more2 join/part cycles,12 in less than2 $joinpartsecs secs." -next
	      timer $clonebantime "pushmode $chan -b *!*@$host"
            		}
	}
}


proc enforce:flood:mlock {chan} {
 global botnick allmodes mlockswitch mlock mlock1 mlock2 noticeswitch clonenotice mlockremove
  set checkmode [split [string trim [lindex [split [getchanmode $chan]] 0] "+"] ""]
  if {($mlockswitch == 1) && ($mlock != "") && ((![string match *$checkmode* *$allmodes*]) || (![string match *$checkmode* $mlock]) || (![string match *$checkmode* $mlock1]) || (![string match *$checkmode* $mlock2]))} {
   putquick "MODE $chan +$allmodes" -next; set modeslocked 1
   }
   if {($noticeswitch == 1) && ($clonenotice != "")} { 
    putquick "NOTICE $chan :$clonenotice" 
    }
   if {($mlockremove == "") || ($mlockremove == "0") || ($mlockremove < "1")} { set $mlockremove 10 }
  utimer $mlockremove [list remove:flood:mlock $chan]
  return 1
}

proc remove:flood:mlock {chan} {
 global botnick allmodes mlock mlock1 mlock2
  set checknewmode [split [string trim [lindex [split [getchanmode $chan]] 0] "+"] ""]
  if {($mlock1 == "")} { set mlock1 $mlock }; if {($mlock2 == "")} { set mlock2 $mlock }
   if {([string match *$checknewmode* *$allmodes*]) || ([string match *$checknewmode* $mlock]) || ([string match *$checknewmode* $mlock1]) || ([string match *$checknewmode* $mlock2])} {
    putserv "MODE $chan -$allmodes"
    return 1
    }
}

proc scan:remove:clones {banmask host nick chan} {
 global botnick clonebantime
  set list [list]
  foreach user [chanlist $chan] {
   if {[string equal -nocase $user $nick]} {continue}
   if {[string match -nocase $banmask "${nick}![getchanhost $user $chan]"]} { lappend list $user }
   }
  putquick "KICK $chan [join $list ,] :0,1 Excessive Clone/Botnet Join Kick 2,0 - (Excessive Clones 12from host:6 *!*@$host2)" -next
  timer $clonebantime "pushmode $chan -b *!*@$host"
 return 1
}
·­awyeah·

==================================
Facebook: jawad@idsia.ch (Jay Dee)
PS: Guys, I don't accept script helps or requests personally anymore.
==================================
Locked