# Eggdrop 0.9j Bot

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

## Description
Eggdrop is a fully-functional IRC bot that provides channel protection, user management, and various automation features such as file transfers and CTCP handling.

## Key Features
- **Channel Protection**: Manages channel modes, bans, and op/voice levels.
- **User Management**: Tracks users with passwords, hostmasks, and access flags.
- **File Transfer Handling**: Supports DCC (Direct Client-to-Client) file transfers.
- **CTCP Handling**: Processes CTCP commands for various purposes.
- **Tcl Scripting**: Extensible via Tcl scripts that can add new commands and behaviors.

## File Analysis
- **chan.c** — Implements channel management functions, including mode handling and ban lists.
- **chan.h** — Defines structures and constants used in channel operations.
- **chanprog.c** — Handles programming for channels, including startup configurations.
- **cmds.c** — Manages commands from users, including attribute changes and user information.
- **dcc.c** — Implements DCC functionality for file transfers.
- **edit.c** — Provides an internal editor for managing the bot's configuration files.
- **eggdrop.h** — Contains global definitions and constants used across modules.
- **files.c** — Manages file operations, including cataloging downloaded files.
- **gotdcc.c** — Processes incoming DCC connections and requests.
- **hash.c** — Implements hashing functions for command processing.
- **hash.h** — Defines types and structures related to commands and access levels.
- **io.c** — Handles main server communication and startup procedures.
- **misc.c** — Manages miscellaneous tasks such as logging, notes, and helpbot interactions.
- **mode.c** — Manages channel modes and op/vote changes.
- **msgcmds.c** — Processes message commands from users.
- **msgnotice.c** — Handles msg, notice, CTCP, and CTCP replies.
- **net.c** — Implements network functions for bots.
- **proc.c** — Manages process handling, including DCC connections and telnet links.
- **reg.c** — Manages user registration and authentication.
- **tandcmd.c** — Handles tandem bot operations.
- **tcl.c** — Integrates Tcl scripting capabilities.
- **tclhash.c** — Adds commands via Tcl on the fly.
- **userrec.c** — Manipulates user data, including hostmasks and flags.
- **users.c** — Manages user records and their attributes.
- **users.h** — Defines structures and constants related to users.
- **dcc.save** — Used for saving user lists periodically.
- **README** — Instructions for setting up the bot.
- **README.botnet** — Information on linking multiple bots together.
- **FEATURES** — Lists key features of Eggdrop 0.9j.
- **Makefile** — Build instructions and configuration options.
- **UPDATES** — Notes on changes and updates to Eggdrop.
- **botchk** — Script for checking if the bot is running and reloading it if necessary.
- **botkick** — Example Tcl script adding a 'kick' command.
- **egg.config.dist** — Default configuration file template.
- **eggstat** — Utility script for dumping statistics about user files.
- **ext** — Documentation on extra commands added to Tcl.
- **go** — Script making the bot leave channels if asked by non-op users.
- **lamestbot** — Sample configuration file for Eggdrop 0.9d and above.
- **scripts** — Scripts adding additional functionality such as DCC commands and public commands.
- **weed** — Tcl script for cleaning up user records.