





            Everything You've Always Wanted to Know about Eggdrop*
                          (*but were afraid to ask)


***                      COMPLETE -MASTER- MANUAL v1.1                       ***
               
                            Current to Eggdrop 0.8m

               Written by Jamie Rishaw <gavroche> al455@cwru.edu


                           Last updated 19 Apr 1994









Welcome to the exciting world of Eggdrop! I'm Robin Leach, and I'll be
your host on this remarkable tour of the stars!

Whatever.

If you have this guide, you probably are a bot master of an Eggdrop bot.
Read this throughly - doing master functions is a hell of a lot different
than simple user crap.  While users can do things in MSG or DCC.. Masters
must perform all maintenance commands while in DCC CHAT or Telnet.  Why?
It's easier. It's faster. And the server lag doesnt play a part in anything.
(At the time of this writing, there are an average of 4500 people on IRC..
as low as 2800, as high as 5000.) Server lag is becoming a bigger and bigger
problem.  Like you care.  Anyhow.

I'm not going to go into detail about how to enter crap like DCC Chat, 
going into telnet, and all that happy shit.  You should know how to do that,
and if you don't, go to your nearby bookstore and get a copy of "Everything
you've Always Wanted to Know about Eggdrop* (*But were afraid to ask) User
Manual", or steal a copy of the widely available Internet text from FTP
b63062.student.CWRU.Edu in /pub/eggdrop. And I'm not PC. Guys and girls,
she and he, will be referred to in the male sense. So bite me.

I'm going to start this off in a few different sections, to make things a
little easier to swallow.  First off I'll start with simple user privelege
commands. Adding +op, +friends.. deops, bans, simple bot stuff.  Then,
I'll go into user help stuff, passwords, the whole deal.  After that, Party
Line maint and heavier bot maintenance.  Next, I'll talk a little bit about
using the builtin editor, and files maintenance crap.. then we move on to
tandem bots and tandem lines. Then, finally a little summary and voila. 
First, however.. Usermaint.

-- You'll note that when you are adding or removing something, the command
starts with a .+ or .- , respectively.  When doing other stuff, the command
starts simply with a .

<<< USER PRIVELEGES >>>
To perform simple user maintenance, you just hop into DCC Chat and go at
it. =) <x> and <y> are words or nicknames; <T> denotes any string of text.

.+op <x> | .-op <x>
 Grant or revoke "Op" priveleges from <x>.  Granting Op priveleges to a
user will enable him to join the Party Line, issue Kick/Ban commands to
Eggdrop, and a bunch of other neat things.. notes.. etc.

.+deop <x> | .-deop <x>
 Add or remove somebody from the "Deop" list.  If a person is on the Deop
list, Eggdrop will not permit him to hold channel ops.  This is queued as
well, so deopping Eggdrop, Opping <x> and then re-opping Eggdrop will prove
nothing. =)  Note, a user is placed on this list if they are not +friend and
they Kick, ban, or twice deop Eggdrop.  Be careful (duh) not to add someone
to both the +op and +deop lists.  It will nullify them.

.+friend <x> | .-friend <x>
 Grant or revoke "Friend" priveleges from <x>. A user with +friend status
will not have "revenge" taken against him if he kicks or deops the bot for
some reason.  It's usually a good idea to tell the lamers with the lame
server-deop scripts to add Eggdrop to its' "protect" list.  Masters are
assumed to be "friends".  Tandem Bots that are listed as +friend will be
auto-connected (and attempted to re-connect if disconnected) once a minute.

.+master <x> | .-master <x>
 Grants or revokes "Master" status for a user.  Master status will let the
user perform any function on the bot.  Be wary.

.+user <x> <y> | .-user <x> <y>
 Adds a new record to the Eggdrop userlist, handle <x>, with hostmask
<y>. Suggested hostmask is "*!userid@host.site.domain". ".-user" effectively
deletes a user's record from the userlist.

.adduser <x>
 Performs the same function as "+user" (or person /MSGing the bot "hello").
Easier than parsing user@host yourself.

.+bot <x> <y:port> | .-bot <x>
 Adds a bot to the party line :)  Tandem-izes it in essence. <y:port> is the
hostname and port number of the remote bot's default "listen" port, in the
form hostname.domain.edu:port .  This must be done recursively on BOTH bots,
reflecting each others' hostnames and ports.  Also, .chpass to a like password
setting for both bots.

.+tandem <x> | .-tandem <x>
 Adds or removes "tandem" status from a bot.  This is for redundant bots on
a channel.  Setting 'passive' on or off determines which bot's userlist takes
precedence.

.+party <x> | .-party <x>
 Adds or removes <x>'s ability to use the party line.  'set'tings can change
this, but with this you can give someone party-line access without having to
give him +op.  See 'set require-p'.

.+xfer <x> | .-xfer <x>
 Adds or removes <x>'s ability to enter files. See 'set require-x'.

<<< USER MAINTENANCE >>>
Again, DCC Chat only. Perform maintenance on user accounts, etc.

.user <x>
 Obtain a listing of known information for user <x>. Such information would
include login address, handle, last time seen, and possibly his E-Mail address
and a brief comment.

.handle <x> <y>
 Eggdrop knows a user by the nickname in which he originally /MSGed Eggdrop
"Hello" with (Or, the nickname specified in a +user command).  This nickname
is the nickname to file .notes, and what to type when you initiate a telnet
connection.  To change this, a Master issues the .handle command.  Syntax is:
".handle old_nickname new_nickname".

.+host <x> <y> | .-host <x> <y>
 This command will either add or delete host entry-mask <y> from user <x>'s
user record.  It's easier to have the user /MSG Eggdrop "Hello" from the NEW
host to add (when adding), but this will work as well.

.chpass <x> <y>
 This command will change the password for user <x> to <y>.  It's suggested
that the password be short and easy to remember.  (Long passwords can get
icky and screw things up.)  Don't go changing peoples' passwords unless they
ask, though. =)

.comment <x> <T>
 Change the user comment (or add one) for user <x>.  This comment is seen
in a ".user" command, and only Masters can see it.  It's useful for adding
things to the user record that you want to note, etc..

.email <x> <y>
 Change user <x>'s logged E-Mail address to <y>.  Note an E-Mail address is
not necessarily a valid login user@host.

.info <x> <T> | .info <x> | .-info <x>
 Change user <x>'s "Info" line to <T>.  The Info will (if enabled) be
displayed -to the channel- when the user enters Eggdrop's current chan.
The second syntax will tell you user <x>'s info line, and the third will
remove the info line.


<<< PARTY LINE MAINTENANCE >>>
Believe it or not, you can do Party Line maint. =)

.who
 Shows you a list of all people on the Party Line. Anyone can do this.

.boot <x>
 Boot to the head!  .boot knocks <x> off of the Party Line.

.+blind <x> | .-blind <x>
 Will "blind" user <x> from seeing messages on the Party Line.  User will
still be able to get .notes.

.+console <x> | .-console <x>
 Turn "Master" console on/off for <x> to see.

,<T>
 Starting a message on the Party Line with a "," will result in ONLY MASTERS
being able to see the message. +op'd people will not see it.

.relay <bot>
 Relays your dcc chat connectio to bot <bot>.  <bot> must be listed as a
Tandem bot for this to work.

<<< EGGDROP MAINTENANCE AND QUERYING >>>
There's a bunch of stuff. :)

.users
 Not A Very Nice Idea.  .users gives you a complete list of EVERY entry
in the users file, whether they are online or not.  This can get pretty big.
(This is no longer implemented to my knowledge.) ~jgr

.match {+<dfmot>}
 Searches through the user file for all users matching stated flags.  Useful
for looking for all Masters, or all Deops, etc..

.dccstat
 Shows you *all* DCC/Telnet sessions going on at the time.

.+ignore <x> | .-ignore <x> | .ignores
 Adds or removes <x> (or entry <x>) from the "ignores" list.  This is
ignore by hostmask, not nickname. ".ignores" shows the current ignore list.

.channel
 Shows you all the people on the channel, a little bit of Eggdrop internal
information, and user flags of those online. Also shows if users split, how
long.. illegal channel ops.. the whole 9 yards. Nice feature.

.channelbans
 Same as ".channel", but also shows you all the bans currently on the channel,
and who placed them on there, if known.

.console <on/off>
 Turns your console on or off. Console enables you to see spies, etc.
Turning console off will not disable you from seeing Party Line messages,
or .notes.

.log <x> <y>
 Shows you the logfile, FROM <x> minutes ago, TO <y> minutes ago.

.save
 Manually saves the user file.

<<< OWNER MAINTENANCE >>>
These things really only should be done by the owner.. although any +Masters
can do it.

.set <x> <y> | .set
 Change an internal setting of Eggdrop.  Settings are:
   clear-bans    :: clear bans on bot join to the channel
   enforce-bans  :: boot users mactching a ban out of the channel
   greet         :: check .info file for greetings on join
   isolate       :: (Tandem) isolates your party line from the rest
   learn-users   :: let new channel users introduce themselves
   log-joins     :: log joins/parts/quits/etc
   log-time      :: show times in log file (Time-Stamp)
   op-on-join    :: +o oplisters on join
   passive       :: (Tandem) defines bot's userfile tandem precedence
   periodic-save :: periodically save user file. saves CPU time
   require-p     :: require users have 'p' flag to enter party line.
   require-x     :: require users have 'x' flag to enter Xfer area.
   revenge       :: get back at people who do bad
   share-users   :: (Tandem) shares the users file
   spy           :: log channel happenings (Server jumps, Fail /Invite)
   spy-public    :: show talking on channel (Public messages)
   strict-host   :: does not strip ~ (for hack sprees with ~user@host)(identd)
   use-info      :: toggles displaying user '.info' upon a JOIN

 I highly recommend that you keep learn-users ON when first starting.
You can "close" the bot to newbies later by setting learn-users off.
.set with no arguments will return current settings.

.define <x> <y> | .define
 Displays and/or changes internal "definitions" of the bot normally defined
in the config file.  Note, changing a define may not have an effect as it is
only used upon bootup.
Defines are:
   nick         nickname of bot           user         user(@host) of bot
   realname     gecos (Real Name)         channel      home channel
   logfile      duh                       userfile     user settings file
   dcc-path     full path for dcc files   dcc-incoming full dcc uploads path
   telnet       telnet listen port        motd         motd filename
   servlimit    minimum servers limit     admin        administrators line
   gain-ops     the way to get chanop     init-server  server init string
   notefile     queued notes (disk) file  flood-msg    max msg threshold
   flood-chan   max channel-msg threshold flood-join   max join flood threshold
   helpbot      help bot's name           helpdir      path to help files
   channel-key *keyword to channel        act-logfile *activity logfile
              (* = May not be defined.)

.dump <T>
 Dumps raw_irc text <T> to the server.

.reset
 Forces bot to query the server for new information on the current status
of the channel, just in case things go awry. (Desync, etc)

.status
 Returns you the current status, memory usage, userfile stats, etc, of the bot.

.rehash
 Forces Eggdrop to re-read the configuration files and adopt those. Useful
if you've made changes manually.

.die
 Take a WILD guess.

.jump
 Moves to the next server in the bot's internal server-list.

.debug
 Dumps memory table contents.

.exec <T>
 Performs UNIX Shell-level system() execution <T>.
 <The command really isn't ".exec".. Ask Robey or gavroche>
  < You really think we'd be that stupid?? =) >



<<< THE EDITOR >>>
Whee!! The Editor!!  Eggdrop has got to be the only bot with a goddamn
EDITOR.  NOW you've seen it all.

.edit <file>
 Takes you into the Editor, editing file <file>.

Editor Commands:
.h        --> Help (Prints a help screen)
.l        --> List the contents of the file
.+ , .-   --> Move one line forward or backward
.<x>      --> Move to line <x>
.d        --> Delete current line
.r/xx/yy  --> Replace text "xx" with "yy" on current line
.q        --> Bail! Quit without saving
.s        --> Save, and exit back to Party Line

If you type in text, it will be appended after the current line.  (i.e.
if you are at line 42, any text you type will start in line 43.)

It's relatively easy to move around in, once you get the hang of it =)


<<< TANDEM BOTS >>>

Oh, what fun we have with the Tandem bots.  As of this writing, we have a net
of ~10 bots which we tandem-ize.  It's really fun, 'specially when we start to
link other nets to it (Cleveland Freenet, Undernet, Overnet, etc).  Some cmds
associated with Tandemizing:

.+bot | .-bot
 See above

.chaddr <bot> <host:port>
 Changes <bot>'s hostname/port.

.note <user|user@bot>
 Sends a note to a user.  If a user is on another bot, and you want to send a
note via the Tandem link to him, use ".note user@bot (note to send)."

.link <bot> [<bot2>]
 Links <bot> via Tandem link to your bot.  If second <bot> argument is used,
it links <bot2> to <bot>, providing that <bot> is currently on the T-Net.

.delink <bot> [<bot2>]
 Removes the Tandem link going to <bot>, or from <bot> to <bot2>.

.set isolate <on/off>
 Toggles your isolation - if isolate is set ON, your party line will not
propigate across the T-Net, and you will not receieve any notes *from* the
T-Net.

.whom
 Shows a list of all users on all bots.  If a bot has no users, (after 8m) it
will be shown, indicating no users.


<<< CONCLUSION >>>
Robey is Goddess.


<<< MAILING LIST >>>

To subscribe to the Eggdrop releases/discussion mailing list, send e-mail to
eggdrop-request@nin.net      Subject: Subscribe.


<<< BUGS >>>

If you find (GASP!) a bug or error in the code, mail either me, or Robey
directly.  E-Mail addresses:

gavroche(me) Jamie Rishaw    jamie@nin.net
Robey        Robey Pointer   rpointe@eng.clemson.edu


