# Eggdrop 0.9o Bot

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer

## Description
Eggdrop is a fully-functional IRC bot written in C that provides extensive channel protection, user management, and automation features.

## Key Features
- **Channel Protection**: Permanent ban list with comments.
- **User Management**: User records stored on disk with customizable access flags.
- **Command Automation**: Automates commands like OPs, Kicks, and Party Line management.
- **File Transfer Services**: Supports DCC file transfers.
- **TCL Scripting**: Extensive TCL scripting capabilities for customizing bot behavior.

## File Analysis
- **chan.c** — Contains functions related to channel operations.
- **chan.h** — Header file defining structures used in `chan.c`.
- **chanprog.c** — Handles channel programming and ban management.
- **cmds.c** — Manages commands from users.
- **dcc.c** — Handles DCC connections and transfers.
- **dccutil.c** — Utility functions for DCC operations.
- **edit.c** — Built-in editor for the bot, though it is deprecated.
- **eggdrop.h** — Contains compile-time settings and defines used throughout the codebase.
- **fileq.c** — Manages file queueing functionality.
- **files.c** — File subsystem handling.
- **gotdcc.c** — Processes incoming CTCP DCC requests.
- **hash.c** — Handles command hashing and binding.
- **hash.h** — Header file for `hash.c`.
- **main.c** — Main server communication and startup functions.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory management functions.
- **misc.c** — Miscellaneous utility functions, including helpbot and note dumping.
- **mode.c** — Manages channel modes.
- **msgcmds.c** — Handles message commands from users.
- **msgnotice.c** — Manages message notices and CTCP replies.
- **net.c** — Network handling for bots.
- **proc.c** — Process handling functions.
- **tandcmd.c** — Functions for dealing with tandem bots.
- **tcl.c** — TCL support for dynamic command binding.
- **tclhash.c** — Adds commands via TCL on the fly.
- **userrec.c** — User data manipulation and record management.
- **users.c** — Contains user record handling functions.
- **users.h** — Header file defining structures used in `users.c`.
- **dcc.save** — Script to save user lists periodically.
- **README** — Basic documentation for the bot.
- **FEATURES** — List of features provided by Eggdrop.
- **Makefile** — Build configuration and commands.
- **UPDATES** — Update history and changes made over time.
- **botchk** — Script to check if the bot is running and reload it if necessary.
- **botkick** — Example script for adding a `kick` command via TCL.
- **botnet.doc** — Documentation on setting up a botnet with Eggdrop.
- **compat** — Scripts to implement old commands for compatibility.
- **egg.config.dist** — Sample configuration file for bots compiled without TCL.
- **eggstat** — Utility script to dump statistics about the userfile.
- **lamestbot** — Sample configuration file for bots compiled with TCL.
- **motd** — Message of the day file.
- **nets** — List of botnets using Eggdrop.
- **samples** — Examples of extending Eggdrop with TCL commands.
- **tcl-commands.doc** — Documentation on extra TCL commands added by Eggdrop.
- **tricks** — Various tricks and tips for configuring Eggdrop.
- **weed** — Script to weed out undesirables from the userlist.