# Eggdrop 0.9c Bot

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

## Description
Eggdrop is a fully-functional IRC bot written in C that automates various tasks on an IRC channel, such as managing users, handling DCC connections, and providing services like fileserve and XDCC.

## Key Features
- **Auto-restart**: Attempts to restart the bot automatically if it crashes.
- **Channel Management**: Manages channel modes, key, limits, and topic.
- **User Management**: Tracks user status (op, deop, ban) and provides commands for managing users.
- **DCC Connections**: Handles DCC chat and file transfers.
- **Fileserve/ XDCC Services**: Provides filesharing services to the IRC network.
- **Party Line Access**: Manages access to a private channel where bot masters can communicate.

## File Analysis
- **autore.c** — Implements automatic restart functionality for the bot.
- **chan.c** — Handles channel-specific operations and user management.
- **chan.h** — Defines structures and constants used in channel handling.
- **chanprog.c** — Manages programming commands for channels, including bans and modes.
- **cmds.c** — Processes various IRC commands from users.
- **dcc.c** — Manages DCC (Direct Client-to-Client) connections.
- **echobot.c** — Writes text to stderr for debugging purposes.
- **edit.c** — Provides an in-built editor for managing configuration files.
- **eggdrop.h** — Contains global definitions and macros used throughout the bot.
- **eggtel.c** — Handles telnet connections for DCC chat.
- **eggutil.c** — Utility functions for various tasks, including file management.
- **files.c** — Manages a catalog of files for DCC transfers.
- **gotdcc.c** — Processes received ctcp-dcc messages.
- **hash.c** — Implements hashing and command handling.
- **hash.h** — Defines structures and constants used in command handling.
- **io.c** — Handles main server communication and startup.
- **misc.c** — Manages miscellaneous functions like logging, notes, and helpbot operations.
- **mode.c** — Manages channel modes and user statuses.
- **msgcmds.c** — Processes message commands from users.
- **msgnotice.c** — Handles msg, notice, and ctcp messages.
- **net.c** — Implements network-related functionality for bots.
- **proc.c** — Manages process handling, including DCC connections and telnet links.
- **reg.c** — Registers new users and manages user records.
- **tandcmd.c** — Handles commands passed by tandem bots.
- **tandem.c** — Manages a chain of tandem bots.
- **users.c** — Manages user data, including bans and ignores.
- **users.h** — Defines structures for managing user data.
- **dcc.save** — Contains saved user list data.
- **README** — Provides instructions for setting up and upgrading the bot.
- **Makefile** — Contains build instructions for compiling the bot.
- **UPDATES** — Lists updates and changes made to the bot.
- **botchk** — A script to check if the bot is running and reload it if necessary.
- **egg.config.dist** — A sample configuration file for setting up the bot.
- **egg.config.sample1** — Another example of a configuration file.
- **eggdrop.1** — Manpage for the eggdrop command-line tool.
- **eggdrop.doc** — User manual for Eggdrop.
- **eggmasterman** — Master manual for managing Eggdrop bots.