# Eggdrop 1.6.14 Bot Software

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

## Description
Eggdrop is a versatile IRC bot designed for automated channel management, user interaction, and network coordination among multiple bots. It supports various commands, automations, and can be configured to handle flood protection, channel ops, and file transfers.

## Key Features
- **Command Handling**: Supports binded commands for various actions.
- **Channel Management**: Handles JOIN, PART, KICK, and OP/DEOP operations.
- **Flood Protection**: Implements flood control mechanisms using `sentinel.tcl`.
- **File Transfer**: Manages DCC file transfers with `.get` and `.put` commands.
- **User Interaction**: Supports user-level interactions like bans and modes.
- **Botnet Coordination**: Facilitates communication between linked bots.

## File Analysis
- **acconfig.h** — Template for configuration settings.
- **mod.irc** — Configuration file for IRC module loading.
- **action.fix.tcl** — Fixes for handling DCC CTCP messages.
- **alltools.tcl** — Collection of utility procedures and functions.
- **cmd_resolve.tcl** — Provides commands to resolve hostnames or IP addresses.
- **compat.tcl** — Compatibility mappings for old Tcl functions.
- **getops.tcl** — Botnet command handling for requesting and giving ops.
- **klined.tcl** — Handles klines by removing servers from the bot's list.
- **notes2.tcl** — Note-taking system with indexing capabilities.
- **ques5.tcl** — Web file management script.
- **sentinel.tcl** — Flood protection and BitchX CTCP simulation.
- **userinfo.tcl** — User information retrieval system.
- **bg.c** — Background process handling for the bot.
- **bg.h** — Header file for background process functions.
- **botcmd.c** — Handles commands from the botnet.
- **botmsg.c** — Formats and sends messages to different versioned bots.
- **botnet.c** — Manages botnet connections, channel associations, and pings.
- **chan.h** — Common header file for channel-related operations.
- **chanprog.c** — Handles server list maintenance, revenge punishment, timers, and tcl script loading.
- **cmds.c** — Processes commands from users via DCC.
- **cmdt.h** — Header file for built-in command handling.
- **dcc.c** — Manages activity on DCC sockets.
- **dccutil.c** — Utilities for sending formatted text over various connections.
- **dns.c** — DNS resolution and related Tcl commands.
- **dns.h** — Header file for DNS-related functions.
- **eggdrop.h** — Compile-time settings for the bot.
- **flags.c** — Flag matching and conversion functions.
- **flags.h** — Header file for flag handling.
- **language.c** — Language support code.
- **main.c** — Core event handling, signal handling, command line arguments.
- **main.h** — Main include file for other header 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** — File copy and move operations.
- **modules.c** — Support for modules in Eggdrop.
- **net.c** — Raw network I/O handling.
- **patch.h** — Header file for adding patches to the version string.
- **proto.h** — Prototypes for functions used outside their own module.
- **rfc1459.c** — IRC protocol handling based on RFC 1459.
- **stat.h** — File attributes and operations.
- **tandem.h** — Header file for tandem operations.
- **tcl.c** — Handles Tcl commands added to the bot.
- **tcldcc.c** — Tcl stubs for DCC commands.
- **tclegg.h** — Stuff used by tcl.c and tclhash.c.
- **tclhash.c** — Handles bindings, procedures, and command lookups.
- **tclmisc.c** — Tcl stubs for other non-Tcl 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, and listing users.