# Eggdrop 1.0e Bot

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer (robey@netcom.com)

## Description
Eggdrop is a full-featured IRC bot written in C, designed to protect channels from takeovers and manage user access through a complex set of commands and scripts.

## Key Features
- **Channel Protection**: Manages channel modes, bans, and op levels.
- **User Management**: Tracks user records with passwords, hostmasks, and flags.
- **DCC File Transfer**: Handles file transfers via DCC.
- **CTCP Handling**: Processes CTCP requests and replies.
- **TCL Scripting**: Supports extensive TCL scripting for custom commands and automations.

## File Analysis
- **chan.c** — handles channel manipulation and status updates.
- **chan.h** — defines structures used in channel management.
- **chanprog.c** — manages server connections, revenge punishments, and timers.
- **chanset.c** — deals with low-level channel and chanset operations.
- **cmds.c** — processes commands from users via DCC.
- **cmdt.h** — contains command definitions for TCL scripting.
- **dcc.c** — handles DCC socket activity and disconnects.
- **dccutil.c** — provides utilities for DCC connections, including formatted text sending.
- **eggdrop.h** — compile-time settings and defines.
- **english.h** — localization strings.
- **filedb.c** — manages filesystem database files.
- **fileq.c** — handles file queue operations.
- **files.c** — deals with file system commands.
- **files.h** — structure definitions for the file database.
- **gotdcc.c** — processes incoming CTCP DCC requests and outgoing dcc files.
- **hash.c** — manages procedure lookups and TCL bindings.
- **hash.h** — default binding definitions.
- **main.c** — handles nick changes, flood detection, signal handling, and interpreting server responses.
- **match.c** — implements wildcard matching functions.
- **mem.c** — memory allocation and tracking.
- **misc.c** — includes utility functions like string operations and logging.
- **mode.c** — manages channel modes and reactions to them.
- **msgcmds.c** — handles all commands entered via /MSG.
- **msgnotice.c** — processes messages and notices from users or channels.
- **net.c** — handles raw network I/O.
- **proto.h** — function prototypes for various modules.
- **tandcmd.c** — manages commands that come across the botnet.
- **tandem.c** — tracks tandem-bots in the chain and channel associations.
- **tcl.c** — TCL command handling, initialization, and variable management.
- **tclegg.h** — defines command types for TCL scripting.
- **tclhash.c** — handles bindings and triggering of TCL commands.
- **userrec.c** — manages user records with bans and ignores.
- **users.c** — tests and enforces bans and ignores, adds/removes users from channels.
- **dcc.save** — saves the entire user list to disk for backup purposes.
- **compat.tcl** — implements compatibility with old '+friend' commands.
- **console.tcl** — saves and restores console modes when a user leaves or returns.
- **gainops1.tcl** — sends and handles requests for ops between tandem bots on the same channel.
- **local.tcl** — intercepts text from party-line users and sends it to local users only.
- **ntalk.irc** — script to talk to an eggdrop bot in dcc chat.
- **ques3.tcl** — creates HTML files showing user information for a channel.
- **samples.tcl** — examples of extending eggdrop with TCL scripts.
- **README** — general documentation about Eggdrop.
- **FEATURES** — highlights key features and capabilities.
- **Makefile** — build instructions.
- **Makefile.in** — configuration file for Makefile.
- **UPDATES** — log of changes and updates.
- **botchk** — script to check if the bot is running and restart it if necessary.
- **compiling.FAQ** — frequently asked questions about compiling Eggdrop.
- **config.h.in** — header file generated by autoconf.
- **configure** — GNU configure script for building Eggdrop.
- **eggdrop.doc** — documentation on using Eggdrop.
- **eggstat** — utility to dump statistics about userfile.
- **lamestbot** — sample configuration file for setting up a bot.