# Eggdrop 1.8.4 Bot

**Category:** Eggdrop_Bot
**Original Author:** Unknown

## Description
Eggdrop 1.8.4 is a versatile IRC bot designed for automated channel management, including joining channels, managing users (OPs, K-lines), and handling flood protection. It supports various modules and scripts that extend its functionality.

## Key Features
- **Botnet Management**: Supports linking to other bots in a network.
- **Channel Operations**: Joins, leaves, and manages channels.
- **User Management**: Manages OPs, K-lines, and ignores.
- **Flood Protection**: Implements flood protection mechanisms.
- **DCC Handling**: Handles DCC (Direct Client-to-Client) file transfers.
- **Scripting Support**: Supports Tcl scripts for custom functionality.

## File Analysis
- **conf.py** — Documentation configuration file for Eggdrop.
- **mod.irc** — IRC module for bot interaction on IRC, including joining channels and managing user permissions.
- **docsfilter.py** — Python script to convert Markdown to uppercase in documentation files.
- **action.fix.tcl** — Tcl script to handle DCC chat actions and telnet session messages.
- **alltools.tcl** — Collection of various utility functions for the bot.
- **cmd_resolve.tcl** — Adds commands for resolving hostnames or IP addresses without blocking.
- **compat.tcl** — Compatibility layer for older scripts.
- **dccwhois.tcl** — Enhanced '.whois' command for DCC connections.
- **getops.tcl** — Script for requesting and giving ops to other bots in a botnet.
- **klined.tcl** — Handles k-lines by removing servers from the bot's list when detected.
- **notes2.tcl** — Manages user notes and indexing.
- **ques5.tcl** — Generates HTML files with formatted URLs, nicknames, etc.
- **quotepass.tcl** — Sends a 'PASS' command to servers that require it.
- **quotepong.tcl** — Sends a 'PONG' response when ident is broken or disabled.
- **sentinel.tcl** — Flood protection and BitchX CTCP simulation script.
- **userinfo.tcl** — Provides user information commands.

- **bg.c** — Handles background process management for the bot.
- **bg.h** — Header file for background process handling.
- **botcmd.c** — Handles commands that come across the botnet.
- **botmsg.c** — Formats and sends different messages to versioned bots.
- **botnet.c** — Manages the botnet, including channel name associations and rejecting bots.
- **chan.h** — Common header for channel-related functions.
- **chanprog.c** — Handles server list management, revenge punishment, timers, and initialization of scripts.
- **cmds.c** — Handles commands from users via DCC (Direct Client-to-Client) connections.
- **cmdt.h** — Header file for built-in commands.
- **dcc.c** — Manages activity on DCC sockets.
- **dccutil.c** — Utilities for sending formatted text over various types of connections, including '.who', '.whom', and '.dccstat'.
- **dns.c** — Handles DNS resolve calls and events.
- **dns.h** — Header file for DNS-related functions.
- **eggdrop.h** — Compile-time settings for Eggdrop.
- **flags.c** — Handles flag matching and conversion.
- **flags.h** — Header file for flags handling.
- **language.c** — Language support code.
- **main.c** — Core event handling, signal handling, command line arguments, context, and assert debugging.
- **main.h** — Main include file to include most other include files.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory allocation and deallocation.
- **misc.c** — Handles logging, queueing output, help system, and MOTD display.
- **misc_file.c** — Handles file operations like copying and moving.
- **misc_file.h** — Header file for file operations.
- **modules.c** — Supports modules in Eggdrop.
- **modules.h** — Header file for module support.
- **net.c** — Handles raw network I/O.
- **proto.h** — Prototypes for functions used outside their own modules.
- **rfc1459.c** — Implements IRC protocol handling based on RFC 1459.
- **stat.h** — File attributes.
- **tandem.h** — Header file for tandem operations.
- **tcl.c** — Handles Tcl commands and initialization.
- **tcldcc.c** — Tcl stubs for DCC commands.
- **tclegg.h** — Header file used by tcl.c and tclhash.c.
- **tclhash.c** — Handles bindings, procedures lookups, and Tcl command handling.
- **tclhash.h** — Header file for binding and procedure lookup functions.
- **tclmisc.c** — Tcl stubs for other commands.
- **tcluser.c** — Tcl stubs for user-record-oriented commands.
- **tls.c** — TLS support and certificate handling.
- **userent.c** — Handles user-entry management.
- **userrec.c** — Functions to find, change, and check user records.
- **users.c** — Manages testing, enforcing ignores, sending/receiving userfiles, and listing users.