# Eggdrop 1.4.3 Botnet Core

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer (with contributions from various authors)

## Description
Eggdrop 1.4.3 is a full-featured IRC bot designed for managing and automating tasks on IRC networks, including channel management, user interaction, and network-wide operations.

## Key Features
- **Channel Management**: Handles joining, parting, and switching channels.
- **User Interaction**: Manages user flags (OPs, halfops), ignores, and bans.
- **Botnet Support**: Supports a botnet structure for distributed control.
- **Scripting**: Extensive use of Tcl scripting for custom commands and automations.

## File Analysis
- **acconfig.h** — Template file used to generate configuration headers.
- **action.fix.tcl** — Fixes for handling IRC actions in DCC sessions.
- **alltools.tcl** — Collection of utility functions for various tasks.
- **compat.tcl** — Compatibility layer for older scripts.
- **getops-2.2d.tcl** — Script for requesting and giving ops to other bots.
- **klined.tcl** — Handles k-lines by removing servers from the bot's list.
- **notes2.tcl** — Maintains notes on users, with indexing capabilities.
- **ques5.tcl** — Web scraping module for collecting information.
- **sentinel1.54.tcl** — Flood protection and CTCP simulation system.
- **userinfo1.0.tcl** — Provides user information such as nicknames and URLs.
- **botcmd.c** — Handles commands from the botnet.
- **botmsg.c** — Formats messages for sending to different versions of bots.
- **botnet.c** — Manages the botnet structure, including linking and relaying.
- **chan.h** — Common header file for channel-related functions.
- **chanprog.c** — Handles channel programming settings and tcl scripts.
- **cmds.c** — Implements commands from users via DCC.
- **cmdt.h** — Header file for command definitions.
- **dcc.c** — Manages DCC connections and activities.
- **dccutil.c** — Utility functions for DCC operations.
- **eggdrop.h** — Compile-time settings for the bot.
- **flags.c** — Handles flag matching and conversion.
- **flags.h** — Header file for flags definitions.
- **language.c** — Implements language support.
- **main.c** — Core event handling and command line arguments.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory allocation and deallocation.
- **misc.c** — Handles various miscellaneous tasks like logging, help systems, and buffer resyncing.
- **modules.c** — Supports loading of modules in the bot.
- **net.c** — Manages raw network I/O.
- **patch.h** — Header file for adding patches to the version string.
- **proto.h** — Prototypes for external functions.
- **rfc1459.c** — Implements RFC 1459 protocol handling.
- **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** — Manages bindings and procedures in the bot.
- **tclhash.h** — Header file for tclhash.c.
- **tclmisc.c** — Tcl stubs for various system commands.
- **tcluser.c** — Handles user record-oriented commands.
- **userent.c** — User entry handling, new style.
- **userrec.c** — Functions to find and change user records.
- **users.c** — Implements user-related functions like ignores and auto-linking.
- **users.h** — Header file for users.c and userrec.c.
- **global.h** — RSAREF types and constants.
- **md5.h** — Header file for MD5 message-digest algorithm.
- **md5c.c** — Implements the MD5 message-digest algorithm.
- **module.h** — Header file for module support.
- **modvals.h** — Module values definitions.
- **assoc.c** — Part of assoc.mod, handles association code.
- **bf_tab.h** — Blowfish P-box and S-box tables.
- **blowfish.c** — Encryption and decryption using the Blowfish algorithm.
- **blowfish.h** — Header file for blowfish.mod.