# Eggdrop 0.9p Bot

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

## Description
Eggdrop is a standalone IRC bot written in C, designed to protect channels from takeovers and manage user access. It features extensive channel protection, user record management, and automation for various IRC commands.

## Key Features
- **Channel Protection**: Permanent ban lists with comments.
- **User Management**: User records stored on disk, including passwords and hostmasks.
- **Access Control**: Different levels of access (op, master, etc.) with customizable permissions.
- **File Transfer Services**: DCC file transfers and flood protection for chat.
- **Command Automation**: Bindings to automate responses to IRC commands.

## File Analysis
- **chan.c** — Contains core channel management functions.
- **chan.h** — Header file defining structures used in `chan.c`.
- **chanprog.c** — Handles startup programming for channels.
- **cmds.c** — Manages message handling from users.
- **dcc.c** — Implements DCC (Direct Client-to-Client) functionality.
- **dccutil.c** — Utility functions for DCC operations.
- **edit.c** — Built-in editor, though deprecated in favor of external editors.
- **eggdrop.h** — Compile-time settings and feature toggles.
- **fileq.c** — Manages file queueing and handling.
- **files.c** — File subsystem including directory management.
- **gotdcc.c** — Processes incoming DCC requests and chat.
- **hash.c** — Handles command hashing and execution.
- **hash.h** — Defines access requirements for commands.
- **main.c** — Main server communication and startup logic.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory management utilities.
- **misc.c** — Miscellaneous functions like info dumping, helpbot handling.
- **mode.c** — Manages channel modes and protection.
- **msgcmds.c** — Responds to message commands from users.
- **msgnotice.c** — Handles various IRC messages including CTCP.
- **net.c** — Network-related functions for bots.
- **proc.c** — Process handling, including DCC connections and shell command execution.
- **proto.h** — Prototypes for commonly used functions.
- **tandcmd.c** — Functions for dealing with tandem bots.
- **tcl.c** — TCL integration if enabled.
- **tclhash.c** — Adds commands via Tcl on the fly.
- **userrec.c** — User data manipulation and record management.
- **users.c** — User data handling, including bans and ignores.
- **users.h** — Structures and definitions for user records.
- **dcc.save** — Script to save user lists periodically.
- **README** — General documentation on Eggdrop.
- **FEATURES** — List of features provided by Eggdrop.
- **Makefile.in** — Makefile configuration.
- **UPDATES** — Release notes and updates.
- **botchk** — Script for checking the bot's process status.
- **botkick** — Example script to add command bindings using TCL.
- **botnet.doc** — Documentation on setting up a botnet.
- **compat** — Scripts to implement compatibility with old commands.
- **config.h.in** — Configuration header file.
- **configure** — Autoconf configuration script.
- **egg.config.dist** — Default configuration file for Eggdrop without TCL.
- **eggstat** — Utility to dump statistics about the userfile.
- **lamestbot** — Sample configuration file for Eggdrop with TCL support.
- **lush.h.in** — Header file for TCL integration.
- **motd** — Message of the day (MOTD) file.
- **nets** — List of botnets using Eggdrop.
- **putegg** — Script to copy vital files into another directory.
- **samples** — Examples of extending Eggdrop with TCL.
- **tcl-commands.doc** — Documentation on extra commands added by Eggdrop.
- **tricks** — Various tricks and tips for using Eggdrop.
- **weed** — Utility script to weed out undesirables from the userlist.