# Eggdrop 0.9g Bot

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

## Description
Eggdrop 0.9g is a standalone IRC bot written in C, designed to automate tasks such as channel management, user access control, and file transfers via XDCC. It supports various commands for ops and masters to manage the bot's functionality.

## Key Features
- **Channel Management:** Manages channel modes, limits, and key.
- **User Access Control:** Supports op, deop, master, and friend levels with associated permissions.
- **File Transfer:** Implements XDCC file sharing.
- **Command Binding:** Uses `bind` to execute commands based on user actions.
- **Automated Actions:** Can automatically op users upon joining the channel if configured.

## File Analysis
- **autore.c** — Listens for connections on port 1974 and reloads the bot if it's not running.
- **chan.c** — Manages channel state, including bans, modes, and key.
- **chan.h** — Defines structures for managing channels and users.
- **chanprog.c** — Reads programming for the current channel from a configuration file.
- **cmds.c** — Handles commands sent by users.
- **dcc.c** — Manages DCC connections and uploads/downloads.
- **edit.c** — Provides an in-built editor for modifying bot configurations.
- **files.c** — Manages files and their cataloging on the bot.
- **gotdcc.c** — Processes received DCC requests.
- **hash.c** — Implements a hashing function to handle commands and messages.
- **hash.h** — Defines command structures and access levels.
- **io.c** — Handles main server communication, startup, and logging.
- **misc.c** — Manages miscellaneous functions such as notes, helpbot, and logging.
- **mode.c** — Manages channel modes and limits.
- **msgcmds.c** — Responds to message commands from users.
- **msgnotice.c** — Handles message, notice, and ctcp responses.
- **net.c** — Implements network communication functions for bots.
- **proc.c** — Manages processes such as DCC connections and telnet links.
- **reg.c** — Pattern matching functions for command handling.
- **tcl.c** — Integrates Tcl scripting capabilities into the bot.
- **tclhash.c** — Adds commands via Tcl on the fly.
- **userrec.c** — Manages user records, including op levels and access control.
- **users.c** — Handles user data manipulation.
- **users.h** — Defines structures for managing users.
- **dcc.save** — Saves the entire user list periodically or when changes are made.
- **README** — Instructions for setting up and compiling Eggdrop 0.9g.
- **README.botnet** — Documentation on linking multiple bots together to form a botnet.
- **Makefile** — Build instructions for compiling Eggdrop 0.9g.
- **UPDATES** — Release notes detailing changes in version 0.9g.
- **botchk** — Script to check if the bot is running and reload it if necessary.
- **botkick** — Example Tcl script to add a 'kick' command.
- **egg.config.dist** — Default configuration file for Eggdrop 0.9g.
- **ext** — Additional commands added by Tcl integration.
- **go** — Script to make the bot leave the channel when asked.
- **lamestbot** — Sample configuration file for creating a new bot.
- **scripts** — Scripts for adding DCC and public commands.
- **weed** — Script to clean up user records.