# Eggdrop 1.0c Bot

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer (Unknown)

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

## Key Features
- **Channel Protection**: Manages channel modes, bans, and op privileges.
- **User Management**: Tracks users with passwords, hostmasks, and access flags.
- **Command Handling**: Processes various IRC commands like JOIN, PART, KICK, and MODE changes.
- **File Services**: Supports file transfers via XDCC.
- **Tcl Scripting**: Extensible through Tcl scripts for custom functionality.

## File Analysis
- **chan.c** — Handles channel manipulation and status updates.
- **chan.h** — Defines data structures related to channels and bans.
- **chanprog.c** — Manages channel programming settings and timers.
- **chanset.c** — Manages low-level channel and chanset operations.
- **cmds.c** — Processes commands from users via DCC connections.
- **cmdt.h** — Defines command types for Tcl scripting.
- **dcc.c** — Handles DCC socket activity and disconnects.
- **dccutil.c** — Provides utilities for DCC file transfers.
- **eggdrop.h** — Contains compile-time settings and defines.
- **english.h** — Stores text strings used in the bot.
- **filedb.c** — Manages filesystem database files and remote requests.
- **fileq.c** — Handles file queue operations.
- **files.c** — Manages all file system commands.
- **files.h** — Defines structures for file database management.
- **gotdcc.c** — Processes incoming CTCP DCC requests.
- **hash.c** — Manages procedure lookups and Tcl bindings.
- **hash.h** — Default bindings for Tcl hash-tables.
- **main.c** — Handles core bot operations like nickname changes, flood detection, and interpreting server responses.
- **match.c** — Implements wildcard matching functions.
- **mem.c** — Manages memory allocation and tracking.
- **misc.c** — Provides miscellaneous utilities like string manipulation and logging.
- **mode.c** — Queues and flushes mode changes made by the bot.
- **msgcmds.c** — Handles commands entered via /MSG.
- **msgnotice.c** — Processes messages and notices from users or channels.
- **net.c** — Manages all raw network I/O.
- **proto.h** — Contains function prototypes for various modules.
- **tandcmd.c** — Handles commands that come across the botnet and userfile transfers.
- **tandem.c** — Tracks tandem bots in the chain and channel associations.
- **tcl.c** — Manages Tcl command bindings and variable handling.
- **tclegg.h** — Defines types for Tcl command bindings.
- **tclhash.c** — Handles binding, unbinding, and triggering of various commands.
- **userrec.c** — Manages user records with flags and hostmasks.
- **users.c** — Tests and enforces bans and ignores, adds/removes users from the channel list.
- **users.h** — Defines structures for user records.
- **dcc.save** — Script to save and restore the entire user list.
- **compat.tcl** — Implements compatibility with old '+friend' commands.
- **console.tcl** — Saves and restores console mode when a user leaves.
- **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 people currently on a channel.
- **samples.tcl** — Examples of extending the bot with Tcl scripts.
- **toolkit.tcl** — Provides useful Tcl procedures for script packages.
- **README** — General information about Eggdrop.
- **FEATURES** — List of features provided by Eggdrop.
- **Makefile** — Build system configuration.
- **Makefile.in** — Template for the Makefile.
- **UPDATES** — List of updates and bug fixes.
- **botchk** — Script to check if the bot is running and restart it if necessary.
- **compiling.FAQ** — FAQ about compiling Eggdrop.
- **config.h.in** — Configuration header template.
- **configure** — Autoconf script for generating Makefiles.
- **eggdrop.doc** — Documentation on using Eggdrop.
- **eggstat** — Script to dump statistics about the userfile.
- **lamestbot** — Sample configuration file for setting up a bot.