# Eggdrop 1.3.25 Bot

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

## Description
Eggdrop 1.3.25 is a standalone IRC bot designed to operate autonomously on an IRC network, providing various services and automations to channel members.

## Key Features
- **Automated Channel Management**: Handles JOIN, PART, KICK, and OP commands.
- **User Authentication**: Supports user flags and levels for access control.
- **Flood Protection**: Implements flood protection mechanisms such as CTCP, join-part, and nick flooding.
- **CTCP Handling**: Processes CTCP requests like VERSION, FINGER, and ECHO.
- **DCC File Services**: Manages DCC file transfers.
- **Botnet Support**: Supports linking with other bots in a botnet for shared resources.

## File Analysis
- **action.fix.tcl** — Handles /me actions and telnet commands.
- **alltools.tcl** — Includes various command tools like newflag, putmsg, and putact.
- **compat.tcl** — Maps old Tcl functions to newer ones for backward compatibility.
- **getops-2.2d.tcl** — Script for requesting and giving ops within a botnet.
- **klined.tcl** — Manages klines by automatically removing servers from the bot's list when detected.
- **notes2.tcl** — Keeps track of user notes and displays them on join.
- **ques4.tcl** — Creates HTML files to display channel information periodically.
- **sentinel1.52.tcl** — Flood protection system with integrated BitchX CTCP simulation.
- **userinfo1.0.tcl** — Manages user information fields for the bot.
- **botcmd.c** — Handles commands from the botnet and updates sharebots.
- **botmsg.c** — Formats messages to be sent on the botnet.
- **botnet.c** — Tracks connected bots, channel name associations, and pings.
- **chan.h** — Defines structures for channels and user records.
- **chanprog.c** — Manages server list, revenge punishment, timers, and tcl scripts initialization.
- **cmds.c** — Handles non-IRC commands via DCC.
- **cmdt.h** — Contains types and definitions for built-in commands.
- **dcc.c** — Manages activity on DCC sockets.
- **dccutil.c** — Handles formatted text sending to various connections, .who, .whom, and .dccstat code.
- **eggdrop.h** — Compile-time settings for the bot.
- **flags.c** — Implements flag matching and conversion functions.
- **flags.h** — Defines flags and their types.
- **language.c** — Provides language support for the bot.
- **main.c** — Handles nickname changes, flood detection, signal handling, command line arguments.
- **match.c** — Implements wildcard matching functions.
- **mem.c** — Manages memory allocation and deallocation.
- **misc.c** — Handles various miscellaneous tasks like split(), maskhost(), logging, and help system.
- **modules.c** — Supports code modules in the bot.
- **net.c** — Handles raw network I/O.
- **patch.h** — Placeholder for patches.
- **proto.h** — Prototypes for functions used outside their own module.
- **rfc1459.c** — Implements RFC 1459 compliance.
- **rfc1459.h** — Provides case-insensitive string comparison functions.
- **tandem.h** — Tracks tandem-bots in the chain and party-line members.
- **tcl.c** — Handles Tcl commands and initialization.
- **tcldcc.c** — Implements Tcl stubs for DCC commands.
- **tclegg.h** — Contains types and definitions used by tcl.c and tclhash.c.
- **tclhash.c** — Manages bindings and hash lookups.
- **tclmisc.c** — Handles file system commands and other non-Tcl functions.
- **tcluser.c** — Implements Tcl stubs for user-record-oriented commands.
- **userent.c** — Handles user entry handling, new style with more versatility.
- **userrec.c** — Manages user records and flags.
- **users.c** — Tests and enforces ignores, adds/removes ignores, lists ignores, auto-links bots, sends/receives a userfile from a bot, lists users, reads the user file.
- **users.h** — Structures and definitions used by users.c & userrec.c.
- **module.h** — Contains all include files for module work.
- **modvals.h** — Defines hooks and values for modules.
- **assoc.c** — Manages channel associations.
- **bf_tab.h** — Blowfish P-box and S-box tables.
- **blowfish.c** — Implements encryption and decryption of passwords using the Blowfish algorithm.
- **channels.c** — Supports channels within the bot.
- **channels.h** — Defines functions for working with channels.
- **cmdschan.c** — Handles commands from a user via DCC that cause server interaction.
- **tclchan.c** — Implements Tcl bindings for channel-related commands.
- **userchan.c** — Manages channel records and user information.