# Eggdrop 1.6.19

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

## Description
Eggdrop 1.6.19 is a full-featured IRC bot designed to manage channels, provide services, and automate tasks such as channel management, user operations, and file transfers.

## Key Features
- **Channel Management**: Handles JOIN/LEAVE/KICK events.
- **User Operations**: Manages user flags (OPs, bans, etc.).
- **File Services**: Supports DCC file transfers.
- **Scripting**: Uses Tcl for event handling and command execution.
- **Botnet Support**: Allows linking to a botnet for centralized control.

## File Analysis
- **action.fix.tcl** — Fixes mIRC dcc chat /me commands.
- **alltools.tcl** — Collection of various utility procedures.
- **cmd_resolve.tcl** — Provides .resolve and .dns commands for looking up hostnames or IP addresses.
- **compat.tcl** — Maps old Tcl functions to new ones for backward compatibility.
- **getops.tcl** — Script for requesting and giving ops within a botnet.
- **klined.tcl** — Handles k-lined servers by removing them from the server list.
- **notes2.tcl** — Manages notes for users in channels.
- **ques5.tcl** — Generates web pages with user information.
- **quotepass.tcl** — Sends QUOTE PASS requests to servers that require it.
- **quotepong.tcl** — Sends PONG :<cookie> responses when needed.
- **sentinel.tcl** — Provides flood protection and BitchX CTCP simulation.
- **userinfo.tcl** — Manages user information and displays it in channels.
- **mod.irc** — Controls the bot's interaction on IRC, including joining channels.
- **bg.c** — Handles background process management.
- **bg.h** — Header file for background process management.
- **botcmd.c** — Handles commands from the botnet and userfile transfers.
- **botmsg.c** — Formats messages to be sent across the botnet and handles different message versions.
- **botnet.c** — Manages the botnet, including tracking connected bots and channel associations.
- **chan.h** — Common header file for channel management.
- **chanprog.c** — Handles various channel-related tasks such as maintaining server lists and timers.
- **cmds.c** — Handles non-IRC commands via DCC sockets.
- **cmdt.h** — Header file for built-in commands.
- **dcc.c** — Manages activity on DCC sockets.
- **dccutil.c** — Provides functions to send formatted text over various connections, including .who and .whom commands.
- **dns.c** — Handles DNS resolve calls and events.
- **dns.h** — Header file for DNS handling.
- **eggdrop.h** — Compile-time settings for Eggdrop.
- **flags.c** — Handles flag matching and conversion functions.
- **flags.h** — Header file for flags.
- **language.c** — Handles language support code.
- **main.c** — Core event handling, signal handling, command line arguments, context, and assert debugging.
- **main.h** — Main include file to include other header files.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory allocation and deallocation.
- **misc.c** — Handles various miscellaneous tasks such as logging, queueing output, help system, and MOTD display.
- **misc_file.c** — Handles file operations like copyfile() and movefile().
- **misc_file.h** — Header file for file handling functions.
- **modules.c** — Supports modules in Eggdrop.
- **modules.h** — Header file for module support.
- **net.c** — Handles raw network I/O.
- **patch.h** — Header file for adding patches to the version string.
- **proto.h** — Prototypes for every function used outside its own module.
- **rfc1459.c** — Implements RFC 1459 IRC protocol handling.
- **stat.h** — File attributes.
- **tandem.h** — Header file for tandem support.
- **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, triggers, and procedures.
- **tclhash.h** — Header file for binding handling.
- **tclmisc.c** — Tcl stubs for other commands.
- **tcluser.c** — Tcl stubs for user-record-oriented commands.
- **userent.c** — User-entry handling functions.
- **userrec.c** — Functions to find and change user records.
- **users.c** — Handles testing, enforcing ignores, adding/removing ignores, listing ignores, auto-linking bots, sending/receiving userfiles, and .whois/.match commands.
- **users.h** — Structures and definitions used by users.c and userrec.c.
- **module.h** — Header file for module support.
- **modvals.h** — Header file for module values.