# Eggdrop 1.3.4 Bot

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer (Unknown)

## Description
Eggdrop 1.3.4 is a standalone IRC bot designed for automated channel management, including user actions like joining, parting, kicking, and oping channels. It supports various commands and automations through TCL scripts.

## Key Features
- **Commands and Automations:** Implements numerous commands and automations such as `.me`, `.putmsg`, `.putact`, `.klines`.
- **User Management:** Supports user flags and access levels.
- **Channel Operations:** Manages channel modes, bans, and opers.
- **Flood Protection:** Detects and mitigates floods.
- **DCC Handling:** Implements DCC file transfers.

## File Analysis
- **action.fix.tcl** — Handles `/me` commands for actions in IRC channels.
- **alltools.tcl** — Includes various tools like `putmsg`, `putact`, `newflag`.
- **getops-1.8.tcl** — Manages bot operations and wallop messages.
- **klined.tcl** — Automatically handles klines by removing servers from the bot's list.
- **ques4.tcl** — Creates HTML files to display channel information periodically.
- **userinfo1.0.tcl** — Enhances `whois` output with additional user fields.
- **botcmd.c** — Handles commands and updates from sharebots.
- **botmsg.c** — Formats messages for different bot versions.
- **botnet.c** — Manages the botnet, including linking and relaying to other bots.
- **chan.h** — Defines structures for channel management.
- **chanprog.c** — Manages server lists, revenge punishments, timers, and tcl scripts.
- **cmds.c** — Handles non-IRC commands via DCC sockets.
- **cmdt.h** — Contains command definitions.
- **dcc.c** — Manages DCC socket activity.
- **dccutil.c** — Provides utilities for DCC connections.
- **eggdrop.h** — Defines compile-time settings and includes other headers.
- **flags.c** — Handles flag matching and conversion.
- **flags.h** — Defines flags and their usage.
- **lang.h** — Language support definitions.
- **language.c** — Implements language support.
- **main.c** — Manages nickname changes, flood detection, signal handling, and command-line arguments.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory allocation and deallocation.
- **misc.c** — Handles various utility functions like `stristr`, `split`, and logging.
- **modules.c** — Supports code modules in Eggdrop.
- **net.c** — Handles raw network I/O.
- **patch.h** — Placeholder for patches.
- **proto.h** — Function prototypes used outside their own module.
- **tandem.h** — Manages tandem bots in the chain.
- **tcl.c** — Handles Tcl commands and initialization.
- **tcldcc.c** — Implements DCC command handling.
- **tclegg.h** — Prototypes for Tcl commands.
- **tclhash.c** — Manages bindings and procedures.
- **tclmisc.c** — Handles file system commands.
- **tcluser.c** — Manages user-record-oriented commands.
- **userent.c** — Handles user entry handling.
- **userrec.c** — Implements functions to find and change user records.
- **users.c** — Manages users, ignores, and auto-linking bots.
- **users.h** — Structures and definitions for user management.
- **assoc.c** — Manages channel associations.
- **bf_tab.h** — Blowfish P-box and S-box tables.
- **blowfish.c** — Implements encryption and decryption of passwords.
- **channels.c** — Supports channels within the bot.
- **channels.h** — Structures for channel management.
- **console.c** — Manages console settings based on `console.tcl`.
- **ctcp.c** — Handles CTCP commands.
- **ctcp.h** — Defines CTCP commands.
- **filedb.c** — Handles low-level filesystem database manipulation.
- **files.c** — Implements file system commands.
- **files.h** — File database structure definitions.