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.

Help.. Wrong number args

Help for those learning Tcl or writing their own scripts.
Post Reply
e
ev0xpr0x
Voice
Posts: 4
Joined: Sat Jun 29, 2013 8:54 am

Help.. Wrong number args

Post by ev0xpr0x »

Hi There,

Some time ago I wrote this script. Have just started using eggdrop again (v1.6.21) with TCL8.5. Now when I try to add a user to the bot I get arg errors. (some others get arg errors also)

Code: Select all

!auser ev0x
[14:04:58] Tcl error [::oper::adduser]: wrong # args: should be "adduser nick host hand chan text"
I have tried adding args removing others but it just tells me my args are still wrong
Have tried removing ALL other tcl scripts and issue a .restart same issue
Have tried pulling it out into own script setting to - removed the namespace etc etc same error

full code dump

Code: Select all

# set owner here
set ownerOper ""
namespace eval oper {
	# all binds go here
	# +n/bot owner commands
	bind pub n !jump [namespace current]::jump
	bind pub n !die [namespace current]::die
	bind pub n !rh [namespace current]::rehash
	bind pub n !chattr [namespace current]::chattruser
	bind pub n !save [namespace current]::save
	bind pub n !rl [namespace current]::reload
	bind pub n !bu [namespace current]::backup
	bind pub n !bc [namespace current]::broadcast
	
	# +m/+n commands
	bind pub m|n !globalaop [namespace current]::addglobalop
	bind pub m|n !globalvop [namespace current]::addglobalvoice
	bind pub m|n !globalf [namespace current]::addglobalfriend
	bind pub m|n !globalrmaop [namespace current]::rmglobalop
	bind pub m|n !globalrmvop [namespace current]::rmglobalvoice
	bind pub m|n !globalrmf [namespace current]::rmglobalfriend
	bind pub m|n !globalban [namespace current]::globalban
	bind pub m|n !rmuser [namespace current]::removeuser
	bind pub m|n !lsuser [namespace current]::listusers
	bind pub m|n !+chan [namespace current]::addchan
	bind pub m|n !-chan [namespace current]::removechan
	bind pub m|n !savechan [namespace current]::savechan
	
	# +m/+m&+o commands
	bind pub m|m !auser [namespace current]::adduser
	bind pub m|m !aop [namespace current]::addop
	bind pub m|m !rmaop [namespace current]::removeop
	bind pub m|o !vop [namespace current]::addvoice
	bind pub m|o !rmvop [namespace current]::removevoice
	bind pub m|o !f [namespace current]::friend
	bind pub m|o !rmf [namespace current]::removefriend
	bind pub m|o !op [namespace current]::op
	bind pub m|o !vo [namespace current]::voice
	bind pub m|o !k [namespace current]::kick
	bind pub m|o !b [namespace current]::ban
	bind pub m|o !kb [namespace current]::kickban
	bind pub m|o !topic [namespace current]::topic
	bind pub o|o !opme [namespace current]::opme
	bind pub -|- !h [namespace current]::help
	
}

# +n/bot owner command proc's
proc oper::jump {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !jump"
	putlog "$nick has triggered !jump"
	jump $text
}

proc oper::die {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !die"
	putlog "$nick has triggered !die"
	die $text
}

proc oper::rehash {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !rehash"
	putlog "$nick has triggered !rehash"
	rehash
}

proc oper::chattruser {nick host hand chan text} {
  global ownerOper
  if {[string length $text] > 0} {
  	set tnick [lindex $text 0]
  	if {[string length [lindex $text 1]] != 0} { set changes [lindex $text 1] }
  	if {[string length [lindex $text 2]] != 0} { set tchan [lindex $text 2] }
  	chattr $tnick $changes $tchan
  	putquick "PRIVMSG $ownerOper :$nick has set $changes to $tnick on channel :$tchan"
  } else { puthelp "PRIVMSG $nick :usage !chattr <nick> <changes> <chan> - as per setting from partyline" }
}

proc oper::save {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !save"
	putlog "$nick has triggered !save"
	save
}

proc oper::reload {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !rl"
	putlog "$nick has triggered !rl"
	reload
}

proc oper::backup {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !bu"
	putlog "$nick has triggered backup"
	backup
}

proc oper::broadcast {nick host hand chan text} {
  global ownerOper
  if {[string length $text] > 0} {
    set text [string trim $text "{}"]
    foreach n [channels] { puthelp "PRIVMSG $n :$text" }
  } else { puthelp "PRIVMSG $nick :!bc <message> - sends message to all channels that the bot is" }
}

# +m/+n command proc's
proc oper::addglobalop { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to add global +ao to $text"
  set addnick [nick2hand $text]
  if {[validuser $addnick]} {
    chattr $addnick +ao
    putquick "PRIVMSG $ownerOper :$nick has added global +ao to $text"
    putserv "PRIVMSG $nick :$text Has Been Given Global Auto-Op Access"
    putlog "$nick added $addnick to Global Auto-Op"
    if {[isop $text $chan] == 0} { pushmode $chan +o $text }
    putserv "PRIVMSG $text :You Have Been Granted Global Auto-Op Access On this bot"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addnick
}

proc oper::addglobalvoice { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to add global +gv to $text"
  set addnick [nick2hand $text]
  if {[validuser $addnick]} {
    chattr $addnick +gv
    putquick "PRIVMSG $ownerOper :$nick has added global +gv to $text"
    putserv "PRIVMSG $nick :$text Has Been Given Global Voice Access"
    putlog "$nick added $addnick to Global Voice"
    if {[isvoice $text $chan] == 0} { pushmode $chan +v $text }
    putserv "PRIVMSG $text :You Have Been Granted Global Voice Access On this bot"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addnick
}

proc oper::addglobalfriend { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to add global +f to $text"
  set addnick [nick2hand $text]
  if {[validuser $addnick]} {
    chattr $addnick +f
    putquick "PRIVMSG $ownerOper :$nick has added global +f to $text"
    putserv "PRIVMSG $nick :$text Has Been Giving Auto-Op Access"
    putlog "$nick added $addnick to Global +f"
    putserv "PRIVMSG $text :You Have Been Granted Global Friend On this bot"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addnick
}

proc oper::rmglobalop { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to add global -ao to $text"
  set addnick [nick2hand $text]
  if {[validuser $addnick]} {
    chattr $addnick -ao
    putquick "PRIVMSG $ownerOper :$nick has removed global -ao to $text"
    putserv "PRIVMSG $nick :$text Has Been Removed From Global Auto-Op Access"
    putlog "$nick rm $addnick from Global -ao"
    if {[isop $text $chan] == 1} { pushmode $chan -o $text }
    #putserv "PRIVMSG $text :You Have Been Purged Global Auto-Op Access On this bot"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addnick
}

proc oper::rmglobalvoice { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to add global -dv to $text"
  set addnick [nick2hand $text]
  if {[validuser $addnick]} {
    chattr $addnick -dv
    putquick "PRIVMSG $ownerOper :$nick has removed global -dv to $text"
    putserv "PRIVMSG $nick :$text Has Been Removed From Global Voice Access"
    putlog "$nick rm $addnick from Global -dv"
    if {[isvoice $text $chan] == 1} { pushmode $chan -v $text }
    #putserv "PRIVMSG $text :You Have Been Purged Global Voice Access On this bot"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addnick
}

proc oper::rmglobalfriend { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to add global -f to $text"
  set addnick [nick2hand $text]
  if {[validuser $addnick]} {
    chattr $addnick -f
    putquick "PRIVMSG $ownerOper :$nick has removed global -f to $text"
    putserv "PRIVMSG $nick :$text Has Been Removed From Global Friend Access"
    putlog "$nick rm $addnick from Global -f"
    #putserv "PRIVMSG $text :You Have Been Purged Global Friend On this bot"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addnick
}

proc oper::globalban { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to add global ban to $text"
# does not require ops in chan
  if {[string length $text] > 0} {
  	set tnick [lindex $text 0]
  	if {[onchan $tnick $chan]} {
  		if {[string length [lindex $text 1]] == 0} { set reason banned } else { set reason [lrange $text 1 end]
  		newban *![getchanhost $tnick $chan] $nick $reason 0
  	} else { puthelp "PRIVMSG $nick :no such nick on channel! This will only global ban a nick in channel otherwise see: $ownerOper" }
  } else { puthelp "PRIVMSG $nick :usage !globalban <nick> reason - globally ban a user from all channels" }
 }
unset tnick
}

proc oper::removeuser { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to remove user $text"
	set tnick [lindex $text 0]
	deluser $tnick
	putlog "$text has been removed from bot"
	unset tchan
}

proc oper::listusers { nick host hand chan text } {
global ownerOper
global botname
 puthelp "PRIVMSG $nick :User List for $botname as at [time]@[date] showing [countusers]:: [userlist]"
}

proc oper::addchan { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to add chan $text"
	set tchan [lindex $text 0]
	channel add $tchan
	putlog "$text channel has been added to bot"
	unset tchan
}

proc oper::removechan { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to remove chan $text"
	set tchan [lindex $text 0]
	channel remove $tchan
	putlog "$text channel has been removed from bot"
	unset tchan
}

proc oper::savechan { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is trying to savechans"
	savechannels
	putlog "channels saved"
}

proc oper::channellist { nick host hand chan text } {
global ownerOper
putquick "PRIVMSG $ownerOper :$nick is viewing channels"
	puthelp "PRIVMSG $nick :Channels on bot :[channels]
	putlog "channels saved"
}

# +m/+m&+o command procs

	
proc oper::adduser { nick host hand chan text } {
global ownerOper
  set addusernick [nick2hand $text]
  if {[validuser $addusernick]} {
    putserv "PRIVMSG $nick :\002$text\002 Is Already In User Database As \002$addusernick\002"
  } else {
    unset addusernick
    adduser $text *![getchanhost $text $chan]
    set addusernick [nick2hand $text]
    putlog "\002$nick\002 Added \002$addusernick\($text\)\002 To User Database"
    putserv "PRIVMSG $nick :\002$text\002 Added To User Database As \002$addusernick\002"
    putserv "PRIVMSG $ownerOper :\002$text\002 Added To User Database As \002$addusernick\002"
    unset addusernick
    unset maskhosts
  }
}

proc oper::addop { nick host hand chan text } {
global ownerOper
  set addopnick [nick2hand $text]
  if {[validuser $addopnick]} {
    chattr $addopnick -|+ao $chan
    putserv "PRIVMSG $nick :$text Has Been Giving Auto-Op Access"
    putlog "$nick added $addopnick to Auto-Op"
    if {[isop $text $chan] == 0} { pushmode $chan +o $text }
    putserv "PRIVMSG $text :You Have Been Given Auto-Op Access For Channel: \002$chan\002"
    putserv "PRIVMSG $ownerOper :$text Given Auto-Op Access For Channel: \002$chan\002"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addopnick
}

proc oper::removeop { nick host hand chan text } {
global ownerOper
  set addopnick [nick2hand $text]
  if {[validuser $addopnick]} {
    chattr $addopnick -|-ao $chan
    putserv "PRIVMSG $nick :$text Has Been removed from Auto-Op Access"
    putlog "$nick removed $addopnick from Auto-Op"
    if {[isop $text $chan] == 1} { pushmode $chan -o $text }
    putserv "PRIVMSG $text :You Have Been Removed From Auto-Op Access For Channel: \002$chan\002"
    putserv "PRIVMSG $ownerOper :$text Removed Auto-Op Access For Channel: \002$chan\002"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addopnick
}

proc oper::addvoice { nick host hand chan text } {
global ownerOper
  set addopnick [nick2hand $text]
  if {[validuser $addopnick]} {
    chattr $addopnick -|+ao $chan
    putserv "PRIVMSG $nick :$text Has Been Giving Auto-Op Access"
    putlog "$nick added $addopnick to Auto-Op"
    if {[isvoice $text $chan] == 0} { pushmode $chan +v $text }
    putserv "PRIVMSG $text :You Have Been Given Auto-Voice Access For Channel: \002$chan\002"
    putserv "PRIVMSG $ownerOper :$text Given Auto-Voice Access For Channel: \002$chan\002"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addopnick
}

proc oper::removevoice { nick host hand chan text } {
global ownerOper
  set addopnick [nick2hand $text]
  if {[validuser $addopnick]} {
    chattr $addopnick -|-ao $chan
    putserv "PRIVMSG $nick :$text Has Been removed from Voice Access"
    putlog "$nick removed $addopnick from Auto-Op"
    if {[isvoice $text $chan] == 1} { pushmode $chan -v $text }
    putserv "PRIVMSG $text :You Have Been Removed From Auto-Voice Access For Channel: \002$chan\002"
    putserv "PRIVMSG $ownerOper :$text Removed Auto-Voice Access For Channel: \002$chan\002"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addopnick
}

proc oper::friend { nick host hand chan text } {
global ownerOper
  set addopnick [nick2hand $text]
  if {[validuser $addopnick]} {
    chattr $addopnick -|+f $chan
    putserv "PRIVMSG $nick :$text Has Been added as a bot friend"
    putlog "$nick added $addopnick to channel friend"
    putserv "PRIVMSG $text :You Have Been Added Friend For Channel: \002$chan\002"
    putserv "PRIVMSG $ownerOper :$text Added Friend Access For Channel: \002$chan\002"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addopnick
}

proc oper::removefriend { nick host hand chan text } {
global ownerOper
  set addopnick [nick2hand $text]
  if {[validuser $addopnick]} {
    chattr $addopnick -|-f $chan
    putserv "PRIVMSG $nick :$text Has Been removed as a bot friend"
    putlog "$nick removed $addopnick to channel friend"
    putserv "PRIVMSG $text :You Have Been Removed Friend For Channel: \002$chan\002"
    putserv "PRIVMSG $ownerOper :$text Added Removed Access For Channel: \002$chan\002"
  } else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
  unset addopnick
}

proc oper::op {nick host hand chan text} {
global ownerOper
  if {[botisop $chan] == 1} {
    if {[string length $text] > 0} {
      set tnick [lindex $text 0]
      if {[onchan $tnick $chan]} {
        if {[isop $tnick $chan]} { pushmode $chan -o $tnick } else { pushmode $chan +o $tnick }
      } else { puthelp "PRIVMSG $nick :no such nick on channel!" }
    } else { puthelp "PRIVMSG $nick :usage !op <nick> - inverts the ops of a nick" }
  } else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper::voice {nick host hand chan text} {
global ownerOper
  if {[botisop $chan] == 1} {
    if {[string length $text] > 0} {
      set tnick [lindex $text 0]
      if {[onchan $tnick $chan]} {
        if {[isop $tnick $chan]} { pushmode $chan -v $tnick } else { pushmode $chan +v $tnick }
      } else { puthelp "PRIVMSG $nick :no such nick on channel!" }
    } else { puthelp "PRIVMSG $nick :usage !vo <nick> - inverts the voice of a nick" }
  } else { puthelp "PRIVMSG $nick :i dont have ops!" }
}	

proc oper::kick {nick host hand chan text} {
global ownerOper
  if {[botisop $chan]} {
    if {[string length $text] > 0} {
      set tnick [lindex $text 0]
      if {[string length [lindex $text 1]] == 0} { set reason kicked } else { set reason [lrange $text 1 end] }
      if {[onchan $tnick $chan]} { putkick $chan $tnick $reason } else { puthelp "PRIVMSG $nick :no such nick on channel!" }
    } else { puthelp "PRIVMSG $nick :usage !k <nick> reason - kicks a nick" }
  } else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper::ban {nick host hand chan text} {
global ownerOper
  if {[botisop $chan]} {
    if {[string length $text] > 0} {
      set tnick [lindex $text 0]
      if {[onchan $tnick $chan]} {
        if {[string length [lindex $text 1]] == 0} { set reason banned } else { set reason [lrange $text 1 end] }
        newchanban $chan *!*@[lindex [split [getchanhost $tnick $chan] @] 1] $nick $reason 0
      } else { puthelp "PRIVMSG $nick :no such nick on channel!" }
    } else { puthelp "PRIVMSG $nick :usage !b <nick> reason - bans a nick" }
  } else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper::kickban {nick host hand chan text} {
global ownerOper
  if {[botisop $chan]} {
    if {[string length $text] > 0} {
      set tnick [lindex $text 0]
      if {[onchan $tnick $chan]} {
        if {[string length [lindex $text 1]] == 0} { set reason banned } else { set reason [lrange $text 1 end] }
        newchanban $chan *!*@[lindex [split [getchanhost $tnick $chan] @] 1] $nick $reason 0
        utimer 5 [putkick $chan $tnick $reason]
      } else { puthelp "PRIVMSG $nick :no such nick on channel!" }
    } else { puthelp "PRIVMSG $nick :usage !kb <nick> reason - kicks and bans a nick" }
  } else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper::topic {nick host hand chan text} {
global ownerOper
  if {[botisop $chan]} { putserv "TOPIC $chan :$text" } else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper::opme {nick host hand chan text} {
global ownerOper
  if {[botisop $chan] == 1} {
    if {[isop $nick $chan] == 0} { pushmode $chan +o $nick } else { puthelp "PRIVMSG $nick :u already have teh op fool" }
  } else { puthelp "PRIVMSG $nick: i dont have ops!" }
}


#HELP SECTION
proc oper::help {nick host hand chan text} {
	global botnick
	puthelp "PRIVMSG $nick :\002Basic User\002 Commands"
	puthelp "PRIVMSG $nick :!auser <nick> - adds a user to bot"
	puthelp "PRIVMSG $nick :!aop <nick> - adds user auto-op to channel"
	puthelp "PRIVMSG $nick :!rmaop <nick> - removes auto-op to channel"
	puthelp "PRIVMSG $nick :!vop <nick> - adds user auto-voice to channel"
	puthelp "PRIVMSG $nick :!rmvop <nick> - removes user auto-voice to channel"
	puthelp "PRIVMSG $nick :!f <nick> - adds user +f to channel"
	puthelp "PRIVMSG $nick :!rmf <nick> - removes user +f to channel"
	puthelp "PRIVMSG $nick :!op <nick> - inverse ops of nick"
	puthelp "PRIVMSG $nick :!vo <nick> - inverse voice of nick"
	puthelp "PRIVMSG $nick :!k <nick> - kicks a user"
	puthelp "PRIVMSG $nick :!kb <nick> <reason - optional> - kicks and bans a user"
	puthelp "PRIVMSG $nick :!topic <text> - sets a channel topic"
	puthelp "PRIVMSG $nick :!opme - if you are set to +o on bot you will be oped"
	if {[matchattr $hand m|n $chan]} {
		puthelp "PRIVMSG $nick :\002Master\002 Commands"
		puthelp "PRIVMSG $nick :!globalaop <nick> - adds global auto-op"
		puthelp "PRIVMSG $nick :!globalvop <nick> - adds global auto-voice"
		puthelp "PRIVMSG $nick :!globalf <nick> - adds global friend"
		puthelp "PRIVMSG $nick :!globalrmaop <nick> - removes global auto-op"
		puthelp "PRIVMSG $nick :!globalrmvop <nick> - removes global auto-voice"
		puthelp "PRIVMSG $nick :!globalrmf <nick> - removes global friend"
		puthelp "PRIVMSG $nick :!rmuser <nick> - removes a user from bot"
		puthelp "PRIVMSG $nick :!lsuser - lists bot users"
		puthelp "PRIVMSG $nick :!+chan <#chan+options> - adds a channel to monitor"
		puthelp "PRIVMSG $nick :!-chan <#chan> - removes a channel from monitor"
		putserv "PRIVMSG $nick :!savechan - Saves channels data"
	}
	if {[matchattr $hand n $chan]} {
		puthelp "PRIVMSG $nick :\002BotOwner\002 Commands"
		puthelp "PRIVMSG $nick :!die - kills bot"
		puthelp "PRIVMSG $nick :!rh - rehash bot"
		puthelp "PRIVMSG $nick :!chattr <nick> <changes> - make raw changes to user as per .chattr in partyline"
		puthelp "PRIVMSG $nick :!save - save config"
		puthelp "PRIVMSG $nick :!rl - reload config"
		puthelp "PRIVMSG $nick :!bu - backup bot"
		puthelp "PRIVMSG $nick :!bc <msg> - broadcast msg to all channels bot is on"
	}
}
User avatar
Madalin
Master
Posts: 310
Joined: Fri Jun 24, 2005 11:36 am
Location: Constanta, Romania
Contact:

Post by Madalin »

Try the script like this see if it gives you any more errors

Code: Select all

# set owner here
set ownerOper "aa"

# all binds go here
# +n/bot owner commands
bind pub n !jump oper:jump
bind pub n !die oper:die
bind pub n !rh oper:rehash
bind pub n !chattr oper:chattruser
bind pub n !save oper:save
bind pub n !rl oper:reload
bind pub n !bu oper:backup
bind pub n !bc oper:broadcast

# +m/+n commands
bind pub m|n !globalaop oper:addglobalop
bind pub m|n !globalvop oper:addglobalvoice
bind pub m|n !globalf oper:addglobalfriend
bind pub m|n !globalrmaop oper:rmglobalop
bind pub m|n !globalrmvop oper:rmglobalvoice
bind pub m|n !globalrmf oper:rmglobalfriend
bind pub m|n !globalban oper:globalban
bind pub m|n !rmuser oper:removeuser
bind pub m|n !lsuser oper:listusers
bind pub m|n !+chan oper:addchan
bind pub m|n !-chan oper:removechan
bind pub m|n !savechan oper:savechan

# +m/+m&+o commands
bind pub m|m !auser oper:adduser
bind pub m|m !aop oper:addop
bind pub m|m !rmaop oper:removeop
bind pub m|o !vop oper:addvoice
bind pub m|o !rmvop oper:removevoice
bind pub m|o !f oper:friend
bind pub m|o !rmf oper:removefriend
bind pub m|o !op oper:op
bind pub m|o !vo oper:voice
bind pub m|o !k oper:kick
bind pub m|o !b oper:ban
bind pub m|o !kb oper:kickban
bind pub m|o !topic oper:topic
bind pub o|o !opme oper:opme
bind pub -|- !h oper:help

# +n/bot owner command proc's
proc oper:jump {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !jump"
	putlog "$nick has triggered !jump"
	jump $text
}

proc oper:die {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !die"
	putlog "$nick has triggered !die"
	die $text
}

proc oper:rehash {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !rehash"
	putlog "$nick has triggered !rehash"
	rehash
}

proc oper:chattruser {nick host hand chan text} {
	global ownerOper
	if {[string length $text] > 0} {
		set tnick [lindex $text 0]
		if {[string length [lindex $text 1]] != 0} { set changes [lindex $text 1] }
		if {[string length [lindex $text 2]] != 0} { set tchan [lindex $text 2] }
		chattr $tnick $changes $tchan
		putquick "PRIVMSG $ownerOper :$nick has set $changes to $tnick on channel :$tchan"
	} else { puthelp "PRIVMSG $nick :usage !chattr <nick> <changes> <chan> - as per setting from partyline" }
}

proc oper:save {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !save"
	putlog "$nick has triggered !save"
	save
}

proc oper:reload {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !rl"
	putlog "$nick has triggered !rl"
	reload
}

proc oper:backup {nick host hand chan text} {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick has triggered !bu"
	putlog "$nick has triggered backup"
	backup
}

proc oper:broadcast {nick host hand chan text} {
	global ownerOper
	if {[string length $text] > 0} {
		set text [string trim $text "{}"]
		foreach n [channels] { puthelp "PRIVMSG $n :$text" }
	} else { puthelp "PRIVMSG $nick :!bc <message> - sends message to all channels that the bot is" }
}

# +m/+n command proc's
proc oper:addglobalop { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to add global +ao to $text"
	set addnick [nick2hand $text]
	if {[validuser $addnick]} {
		chattr $addnick +ao
		putquick "PRIVMSG $ownerOper :$nick has added global +ao to $text"
		putserv "PRIVMSG $nick :$text Has Been Given Global Auto-Op Access"
		putlog "$nick added $addnick to Global Auto-Op"
		if {[isop $text $chan] == 0} { pushmode $chan +o $text }
		putserv "PRIVMSG $text :You Have Been Granted Global Auto-Op Access On this bot"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addnick
}

proc oper:addglobalvoice { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to add global +gv to $text"
	set addnick [nick2hand $text]
	if {[validuser $addnick]} {
		chattr $addnick +gv
		putquick "PRIVMSG $ownerOper :$nick has added global +gv to $text"
		putserv "PRIVMSG $nick :$text Has Been Given Global Voice Access"
		putlog "$nick added $addnick to Global Voice"
		if {[isvoice $text $chan] == 0} { pushmode $chan +v $text }
		putserv "PRIVMSG $text :You Have Been Granted Global Voice Access On this bot"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addnick
}

proc oper:addglobalfriend { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to add global +f to $text"
	set addnick [nick2hand $text]
	if {[validuser $addnick]} {
		chattr $addnick +f
		putquick "PRIVMSG $ownerOper :$nick has added global +f to $text"
		putserv "PRIVMSG $nick :$text Has Been Giving Auto-Op Access"
		putlog "$nick added $addnick to Global +f"
		putserv "PRIVMSG $text :You Have Been Granted Global Friend On this bot"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addnick
}

proc oper:rmglobalop { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to add global -ao to $text"
	set addnick [nick2hand $text]
	if {[validuser $addnick]} {
		chattr $addnick -ao
		putquick "PRIVMSG $ownerOper :$nick has removed global -ao to $text"
		putserv "PRIVMSG $nick :$text Has Been Removed From Global Auto-Op Access"
		putlog "$nick rm $addnick from Global -ao"
		if {[isop $text $chan] == 1} { pushmode $chan -o $text }
		#putserv "PRIVMSG $text :You Have Been Purged Global Auto-Op Access On this bot"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addnick
}

proc oper:rmglobalvoice { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to add global -dv to $text"
	set addnick [nick2hand $text]
	if {[validuser $addnick]} {
		chattr $addnick -dv
		putquick "PRIVMSG $ownerOper :$nick has removed global -dv to $text"
		putserv "PRIVMSG $nick :$text Has Been Removed From Global Voice Access"
		putlog "$nick rm $addnick from Global -dv"
		if {[isvoice $text $chan] == 1} { pushmode $chan -v $text }
		#putserv "PRIVMSG $text :You Have Been Purged Global Voice Access On this bot"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addnick
}

proc oper:rmglobalfriend { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to add global -f to $text"
	set addnick [nick2hand $text]
	if {[validuser $addnick]} {
		chattr $addnick -f
		putquick "PRIVMSG $ownerOper :$nick has removed global -f to $text"
		putserv "PRIVMSG $nick :$text Has Been Removed From Global Friend Access"
		putlog "$nick rm $addnick from Global -f"
		#putserv "PRIVMSG $text :You Have Been Purged Global Friend On this bot"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addnick
}

proc oper:globalban { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to add global ban to $text"
	# does not require ops in chan
	if {[string length $text] > 0} {
		set tnick [lindex $text 0]
		if {[onchan $tnick $chan]} {
			if {[string length [lindex $text 1]] == 0} { set reason banned } else { set reason [lrange $text 1 end] }
			newban *![getchanhost $tnick $chan] $nick $reason 0
		} else { puthelp "PRIVMSG $nick :no such nick on channel! This will only global ban a nick in channel otherwise see: $ownerOper"
			puthelp "PRIVMSG $nick :usage !globalban <nick> reason - globally ban a user from all channels"}
	}
	unset tnick
}

proc oper:removeuser { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to remove user $text"
	set tnick [lindex $text 0]
	deluser $tnick
	putlog "$text has been removed from bot"
	unset tchan
}

proc oper:listusers { nick host hand chan text } {
	global ownerOper
	global botname
	puthelp "PRIVMSG $nick :User List for $botname as at [time]@[date] showing [countusers]:: [userlist]"
}

proc oper:addchan { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to add chan $text"
	set tchan [lindex $text 0]
	channel add $tchan
	putlog "$text channel has been added to bot"
	unset tchan
}

proc oper:removechan { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to remove chan $text"
	set tchan [lindex $text 0]
	channel remove $tchan
	putlog "$text channel has been removed from bot"
	unset tchan
}

proc oper:savechan { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is trying to savechans"
	savechannels
	putlog "channels saved"
}

proc oper:channellist { nick host hand chan text } {
	global ownerOper
	putquick "PRIVMSG $ownerOper :$nick is viewing channels"
	puthelp "PRIVMSG $nick :Channels on bot :[channels]"
	putlog "channels saved"
}

# +m/+m&+o command procs


proc oper:adduser { nick host hand chan text } {
	global ownerOper
	set addusernick [nick2hand $text]
	if {[validuser $addusernick]} {
		putserv "PRIVMSG $nick :\002$text\002 Is Already In User Database As \002$addusernick\002"
	} else {
		unset addusernick
		adduser $text *![getchanhost $text $chan]
		set addusernick [nick2hand $text]
		putlog "\002$nick\002 Added \002$addusernick\($text\)\002 To User Database"
		putserv "PRIVMSG $nick :\002$text\002 Added To User Database As \002$addusernick\002"
		putserv "PRIVMSG $ownerOper :\002$text\002 Added To User Database As \002$addusernick\002"
		unset addusernick
		unset maskhosts
	}
}

proc oper:addop { nick host hand chan text } {
	global ownerOper
	set addopnick [nick2hand $text]
	if {[validuser $addopnick]} {
		chattr $addopnick -|+ao $chan
		putserv "PRIVMSG $nick :$text Has Been Giving Auto-Op Access"
		putlog "$nick added $addopnick to Auto-Op"
		if {[isop $text $chan] == 0} { pushmode $chan +o $text }
		putserv "PRIVMSG $text :You Have Been Given Auto-Op Access For Channel: \002$chan\002"
		putserv "PRIVMSG $ownerOper :$text Given Auto-Op Access For Channel: \002$chan\002"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addopnick
}

proc oper:removeop { nick host hand chan text } {
	global ownerOper
	set addopnick [nick2hand $text]
	if {[validuser $addopnick]} {
		chattr $addopnick -|-ao $chan
		putserv "PRIVMSG $nick :$text Has Been removed from Auto-Op Access"
		putlog "$nick removed $addopnick from Auto-Op"
		if {[isop $text $chan] == 1} { pushmode $chan -o $text }
		putserv "PRIVMSG $text :You Have Been Removed From Auto-Op Access For Channel: \002$chan\002"
		putserv "PRIVMSG $ownerOper :$text Removed Auto-Op Access For Channel: \002$chan\002"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addopnick
}

proc oper:addvoice { nick host hand chan text } {
	global ownerOper
	set addopnick [nick2hand $text]
	if {[validuser $addopnick]} {
		chattr $addopnick -|+ao $chan
		putserv "PRIVMSG $nick :$text Has Been Giving Auto-Op Access"
		putlog "$nick added $addopnick to Auto-Op"
		if {[isvoice $text $chan] == 0} { pushmode $chan +v $text }
		putserv "PRIVMSG $text :You Have Been Given Auto-Voice Access For Channel: \002$chan\002"
		putserv "PRIVMSG $ownerOper :$text Given Auto-Voice Access For Channel: \002$chan\002"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addopnick
}

proc oper:removevoice { nick host hand chan text } {
	global ownerOper
	set addopnick [nick2hand $text]
	if {[validuser $addopnick]} {
		chattr $addopnick -|-ao $chan
		putserv "PRIVMSG $nick :$text Has Been removed from Voice Access"
		putlog "$nick removed $addopnick from Auto-Op"
		if {[isvoice $text $chan] == 1} { pushmode $chan -v $text }
		putserv "PRIVMSG $text :You Have Been Removed From Auto-Voice Access For Channel: \002$chan\002"
		putserv "PRIVMSG $ownerOper :$text Removed Auto-Voice Access For Channel: \002$chan\002"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addopnick
}

proc oper:friend { nick host hand chan text } {
	global ownerOper
	set addopnick [nick2hand $text]
	if {[validuser $addopnick]} {
		chattr $addopnick -|+f $chan
		putserv "PRIVMSG $nick :$text Has Been added as a bot friend"
		putlog "$nick added $addopnick to channel friend"
		putserv "PRIVMSG $text :You Have Been Added Friend For Channel: \002$chan\002"
		putserv "PRIVMSG $ownerOper :$text Added Friend Access For Channel: \002$chan\002"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addopnick
}

proc oper:removefriend { nick host hand chan text } {
	global ownerOper
	set addopnick [nick2hand $text]
	if {[validuser $addopnick]} {
		chattr $addopnick -|-f $chan
		putserv "PRIVMSG $nick :$text Has Been removed as a bot friend"
		putlog "$nick removed $addopnick to channel friend"
		putserv "PRIVMSG $text :You Have Been Removed Friend For Channel: \002$chan\002"
		putserv "PRIVMSG $ownerOper :$text Added Removed Access For Channel: \002$chan\002"
	} else { putserv "PRIVMSG $nick :$text Not Found In User Database" }
	unset addopnick
}

proc oper:op {nick host hand chan text} {
	global ownerOper
	if {[botisop $chan] == 1} {
		if {[string length $text] > 0} {
			set tnick [lindex $text 0]
			if {[onchan $tnick $chan]} {
				if {[isop $tnick $chan]} { pushmode $chan -o $tnick } else { pushmode $chan +o $tnick }
			} else { puthelp "PRIVMSG $nick :no such nick on channel!" }
		} else { puthelp "PRIVMSG $nick :usage !op <nick> - inverts the ops of a nick" }
	} else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper:voice {nick host hand chan text} {
	global ownerOper
	if {[botisop $chan] == 1} {
		if {[string length $text] > 0} {
			set tnick [lindex $text 0]
			if {[onchan $tnick $chan]} {
				if {[isop $tnick $chan]} { pushmode $chan -v $tnick } else { pushmode $chan +v $tnick }
			} else { puthelp "PRIVMSG $nick :no such nick on channel!" }
		} else { puthelp "PRIVMSG $nick :usage !vo <nick> - inverts the voice of a nick" }
	} else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper:kick {nick host hand chan text} {
	global ownerOper
	if {[botisop $chan]} {
		if {[string length $text] > 0} {
			set tnick [lindex $text 0]
			if {[string length [lindex $text 1]] == 0} { set reason kicked } else { set reason [lrange $text 1 end] }
			if {[onchan $tnick $chan]} { putkick $chan $tnick $reason } else { puthelp "PRIVMSG $nick :no such nick on channel!" }
		} else { puthelp "PRIVMSG $nick :usage !k <nick> reason - kicks a nick" }
	} else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper:ban {nick host hand chan text} {
	global ownerOper
	if {[botisop $chan]} {
		if {[string length $text] > 0} {
			set tnick [lindex $text 0]
			if {[onchan $tnick $chan]} {
				if {[string length [lindex $text 1]] == 0} { set reason banned } else { set reason [lrange $text 1 end] }
				newchanban $chan *!*@[lindex [split [getchanhost $tnick $chan] @] 1] $nick $reason 0
			} else { puthelp "PRIVMSG $nick :no such nick on channel!" }
		} else { puthelp "PRIVMSG $nick :usage !b <nick> reason - bans a nick" }
	} else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper:kickban {nick host hand chan text} {
	global ownerOper
	if {[botisop $chan]} {
		if {[string length $text] > 0} {
			set tnick [lindex $text 0]
			if {[onchan $tnick $chan]} {
				if {[string length [lindex $text 1]] == 0} { set reason banned } else { set reason [lrange $text 1 end] }
				newchanban $chan *!*@[lindex [split [getchanhost $tnick $chan] @] 1] $nick $reason 0
				utimer 5 [list putkick $chan $tnick $reason]
			} else { puthelp "PRIVMSG $nick :no such nick on channel!" }
		} else { puthelp "PRIVMSG $nick :usage !kb <nick> reason - kicks and bans a nick" }
	} else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper:topic {nick host hand chan text} {
	global ownerOper
	if {[botisop $chan]} { putserv "TOPIC $chan :$text" } else { puthelp "PRIVMSG $nick :i dont have ops!" }
}

proc oper:opme {nick host hand chan text} {
	global ownerOper
	if {[botisop $chan] == 1} {
		if {[isop $nick $chan] == 0} { pushmode $chan +o $nick } else { puthelp "PRIVMSG $nick :u already have teh op fool" }
	} else { puthelp "PRIVMSG $nick: i dont have ops!" }
}


#HELP SECTION
proc oper:help {nick host hand chan text} {
	global botnick
	puthelp "PRIVMSG $nick :\002Basic User\002 Commands"
	puthelp "PRIVMSG $nick :!auser <nick> - adds a user to bot"
	puthelp "PRIVMSG $nick :!aop <nick> - adds user auto-op to channel"
	puthelp "PRIVMSG $nick :!rmaop <nick> - removes auto-op to channel"
	puthelp "PRIVMSG $nick :!vop <nick> - adds user auto-voice to channel"
	puthelp "PRIVMSG $nick :!rmvop <nick> - removes user auto-voice to channel"
	puthelp "PRIVMSG $nick :!f <nick> - adds user +f to channel"
	puthelp "PRIVMSG $nick :!rmf <nick> - removes user +f to channel"
	puthelp "PRIVMSG $nick :!op <nick> - inverse ops of nick"
	puthelp "PRIVMSG $nick :!vo <nick> - inverse voice of nick"
	puthelp "PRIVMSG $nick :!k <nick> - kicks a user"
	puthelp "PRIVMSG $nick :!kb <nick> <reason - optional> - kicks and bans a user"
	puthelp "PRIVMSG $nick :!topic <text> - sets a channel topic"
	puthelp "PRIVMSG $nick :!opme - if you are set to +o on bot you will be oped"
	if {[matchattr $hand m|n $chan]} {
		puthelp "PRIVMSG $nick :\002Master\002 Commands"
		puthelp "PRIVMSG $nick :!globalaop <nick> - adds global auto-op"
		puthelp "PRIVMSG $nick :!globalvop <nick> - adds global auto-voice"
		puthelp "PRIVMSG $nick :!globalf <nick> - adds global friend"
		puthelp "PRIVMSG $nick :!globalrmaop <nick> - removes global auto-op"
		puthelp "PRIVMSG $nick :!globalrmvop <nick> - removes global auto-voice"
		puthelp "PRIVMSG $nick :!globalrmf <nick> - removes global friend"
		puthelp "PRIVMSG $nick :!rmuser <nick> - removes a user from bot"
		puthelp "PRIVMSG $nick :!lsuser - lists bot users"
		puthelp "PRIVMSG $nick :!+chan <#chan+options> - adds a channel to monitor"
		puthelp "PRIVMSG $nick :!-chan <#chan> - removes a channel from monitor"
		putserv "PRIVMSG $nick :!savechan - Saves channels data"
	}
	if {[matchattr $hand n $chan]} {
		puthelp "PRIVMSG $nick :\002BotOwner\002 Commands"
		puthelp "PRIVMSG $nick :!die - kills bot"
		puthelp "PRIVMSG $nick :!rh - rehash bot"
		puthelp "PRIVMSG $nick :!chattr <nick> <changes> - make raw changes to user as per .chattr in partyline"
		puthelp "PRIVMSG $nick :!save - save config"
		puthelp "PRIVMSG $nick :!rl - reload config"
		puthelp "PRIVMSG $nick :!bu - backup bot"
		puthelp "PRIVMSG $nick :!bc <msg> - broadcast msg to all channels bot is on"
	}
}
e
ev0xpr0x
Voice
Posts: 4
Joined: Sat Jun 29, 2013 8:54 am

Post by ev0xpr0x »

hey that worked. Was it the Eval causing the issue? or my ::?
User avatar
Madalin
Master
Posts: 310
Joined: Fri Jun 24, 2005 11:36 am
Location: Constanta, Romania
Contact:

Post by Madalin »

I fixed some errors and removed namespace thats all your code was fine 99,7%
e
ev0xpr0x
Voice
Posts: 4
Joined: Sat Jun 29, 2013 8:54 am

Post by ev0xpr0x »

thanks legend!

It used to work fine years ago this has had me stumped for a few hours
User avatar
Madalin
Master
Posts: 310
Joined: Fri Jun 24, 2005 11:36 am
Location: Constanta, Romania
Contact:

Post by Madalin »

I never used namespace and i did encountered alot of errors in scripts using that and i always removed the namespace and it was ok. Just like in your case.
e
ev0xpr0x
Voice
Posts: 4
Joined: Sat Jun 29, 2013 8:54 am

Post by ev0xpr0x »

will remember that I have a few other old scripts test also. Thanks bud
Post Reply