extra commands added to Tcl by eggdrop:

if you have ideas for other helpful commands, email:
  robey@wc130.residence.gatech.edu


logfile [[modes] filename]
  creates a new logfile, which will log the modes given -- or, if no logfile
  is specified, just returns a list of logfiles
  returns: filename of logfile created, or (if no logfile is specified) a
    list of logfiles like: "{mco eggdrop.log} {c commands.log}"

putserv <text>
  sends text straight to the server, like 'dump'
  returns: nothing

puthelp <text>
  sends text straight to the helpbot's server -- if there is no helpbot, this
  command will act the same as 'putserv'
  returns: nothing

puterror <text>
  sends text to the log, marked as 'channel' and 'misc' (like a typical error)
  returns: nothing

putlog <text>
  sends text to the log, marked as 'misc'
  returns: nothing

putdcc <dccIdent> <text>
  sends text to the dcc user indicated
  returns: nothing

countusers
  returns: number of users in the bot's database

validuser <handle>
  returns: '1' if a user by that name exists; '0' otherwise

finduser <nick!user@host>
  finds the user record which most closely matches the given user@host
  returns: the handle found, or "*" if none

passwdOk <handle> <pass>
  checks the password given against the user's password -- if the user has
  not set a password, will always return "1"
  returns: "1" if password matches for that user; "0" if not

chattr <handle> [changes]
  changes the attributes for a user record, if you include any -- changes
  are of the form "+f", "-o", "+dk", "-o+d", etc
  returns: new flags for the user (if you made no changes, returns current
    flags) -- returns "*" if that user does not exist

matchattr <handle> <flags>
  returns: "1" if the specified user has ALL the flags requested

botisop
  returns: "1" if the bot is a channel op; "0" otherwise

onchan <nickname>
  returns: "1" if someone by that nickname is on the bot's channel; "0"
    otherwise

ischanban <ban>
  returns: "1" if that is a ban on the bot's channel

getchanhost <nickname>
  returns: user@host of that person if they are on the channel; {} otherwise

onchanSplit <nick>
  returns: "1" if that nick is split from the channel; "0" otherwise

chanlist
  returns: list of nicknames currently on the bot's channel

bind <type> <attr(s)> <command-name> <proc-name>
  adds a new keyword command to the bot -- <type> must be "msg", "dcc", "fil",
  or "pub" -- <attr(s)> are the flags that a user must have to use this command
  -- <command-name> is the keyword for the command (like 'ident' or 'note') --
  <proc-name> is the name of the Tcl procedure to call for this command (see
  below for the format of the procedure call)
  returns: name of the command added

adduser <handle> <hostmask>
  creates a new user entry with the handle and hostmask given (with no pass-
  word, and the default flags)
  returns: "1" if successful, "0" if it already existed

maskhost <nick!user@host>
  returns: hostmask for the string given ("n!u@1.2.3.4" -> "*!u@1.2.3.*",
    "n!u@lame.com" -> "*!u@lame.com", "n!u@a.b.edu" -> "*!u@*.b.edu")

dccSimul <dcc-handle> <command...>
  simulates a dcc command typed in by the dcc user specified
  returns: nothing

addhost <handle> <hostmask>
  adds a hostmask to the hostmask list for a user
  returns: nothing

delhost <handle> <hostmask>
  deletes a hostmask from a user's hostmask list
  returns: "1" on success, "0" if that hostmask wasn't in the list or the
  user does not exist


GLOBAL VARIABLES:
(All configfile variables are global, too.)

channel
  contains the name of the channel the bot is currently on, or {} if none

botnick
  current nickname the bot is using, ie 'Valis' or 'Valis0', etc

botname
  current nick!user@host that the server sees, ie 'Valis!valis@crappy.com'

server
  current server the bot is using, ie 'irc.math.ufl.edu:6667'



COMMAND EXTENSION:

format of a procedure call for --
  msg: proc-name <nick> <user@host> <handle> <args...>
  dcc: proc-name <handle> <dcc-handle> <args...>
    (dcc-handle is always a number, and may not be valid after this proc)
  fil: proc-name <handle> <dcc-handle> <args...>
  pub: proc-name <nick> <user@host> <handle> <args...>


if a procedure returns non-zero, it is logged as a successful command:
  msg: (nick!user@host) !handle! command
  dcc: #handle# command
  fil: #handle# files: command
  pub: <<nick>> !handle! command
