# Eggdrop 0.9r 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 takeover and manage user access through various flags and commands.

## Key Features
- **Channel Protection**: Manages channel bans and ignores.
- **User Management**: Tracks and enforces user access levels using flags like +o (operator), +w (fellow), +p (party).
- **Automated Actions**: Automatically grants ops to users based on their presence and behavior.
- **DCC Handling**: Manages DCC connections for file transfers.
- **Tcl Scripting Support**: Extends functionality through Tcl scripts.

## File Analysis
- **config.h** — Configuration settings used by the bot.
- **ntalk.irc** — IRC script to facilitate private communication with a bot.
- **tcl.h** — Header file defining external facilities for the Tcl interpreter.
- **chan.c** — Handles channel operations and status updates.
- **chan.h** — Common definitions for channel-related functions.
- **chanprog.c** — Manages server connections and configuration.
- **cmds.c** — Processes commands from users via DCC.
- **dcc.c** — Manages DCC socket activities.
- **dccutil.c** — Utility functions for DCC operations.
- **eggdrop.h** — Compile-time settings and feature toggles.
- **fileq.c** — Queues and manages file transfers.
- **files.c** — Handles file system commands.
- **gotdcc.c** — Processes incoming CTCP DCC requests.
- **hash.c** — Manages command lookups using hashing.
- **main.c** — Main bot logic including server connection and command handling.
- **match.c** — Wildcard matching functions for bans and ignores.
- **mem.c** — Memory management and tracking.
- **msgcmds.c** — Handles message commands from users.
- **msgnotice.c** — Processes messages and notices from users or channels.
- **net.c** — Network-related functions, especially for bots.
- **proc.c** — Process handling including DCC connections and telnet links.
- **proto.h** — Prototypes for external functions.
- **tandcmd.c** — Handles commands coming across the botnet and userfile transfers.
- **tcl.c** — Tcl support for adding dynamic commands.
- **tclegg.h** — Defines command types used by Tcl bindings.
- **tclhash.c** — Adds commands dynamically via Tcl.
- **thread.c** — Linux threading support.
- **userrec.c** — Functions to manage user records and access flags.
- **users.c** — Manages bans, ignores, and user lists.
- **users.h** — Structures and definitions for users.
- **dcc.save** — Backup of the user list.
- **README** — Basic documentation on Eggdrop.
- **FEATURES** — List of features supported by Eggdrop.
- **Makefile.in** — Build configuration file.
- **NAROD.msg** — Notes on feature additions and changes.
- **UPDATES** — Version history and bug fixes.
- **botchk** — Script to check for the bot process and reload it if necessary.
- **botkick** — Example Tcl script to add a 'kick' command.
- **compat** — Scripts to implement old commands for compatibility.
- **config.cache** — Cache file from configure script.
- **config.h.in** — Input file for autoconf-generated config.h.
- **config.status** — Script to recreate the current configuration.
- **configure** — Autoconf-generated configuration script.
- **egg.config.dist** — Sample configuration file without Tcl support.
- **eggdrop.doc** — Basic documentation on Eggdrop.
- **eggstat** — Utility to dump statistics about user records.
- **lamestbot** — Sample configuration file with Tcl support.
- **lush.h.in** — Header for Tcl integration.
- **motd** — Default message of the day (MOTD) file.
- **motd.dom** — Customized MOTD for a specific bot.
- **nets** — List of botnets using Eggdrop.
- **putegg** — Script to copy vital files into another directory.
- **samples** — Examples of extending Eggdrop with Tcl scripts.
- **tcl-commands.doc** — Documentation on additional commands added by Tcl.