# Moon-Moon IRC Bot

**Category:** Standalone_Bot
**Original Author:** Charles Heywood

## Description
Moon-Moon is a standalone IRC bot written in Lua using MoonScript syntax. It connects to an IRC server, manages channels and users, and executes various commands through plugins.

## Key Features
- Connects to the IRC server with configurable settings.
- Loads and runs plugins from the `plugins` directory.
- Implements basic IRC event handling (JOIN, PART, NICK, etc.) using Lua coroutines for asynchronous operations.
- Manages user accounts and channels.
- Supports command execution through loaded modules.

## File Analysis
- **compile.sh** — Compiles MoonScript files into Lua bytecode.
- **start.sh** — Starts the bot by compiling scripts and printing a logo.
- **LICENSE** — MIT License with copyright information.
- **README.md** — Documentation for installation and usage of the bot.
- **.gitignore** — Ignores specific files during version control.
- **irc.lua** — Core IRC connection logic, handling server connections and authentication.
- **irc.moon** — MoonScript version of `irc.lua`.
- **logo** — ASCII art logo displayed at startup.
- **main.lua** — Main bot script that loads plugins and starts the event loop.
- **main.moon** — MoonScript version of `main.lua`.
- **example.ini** — Example configuration file for the bot.
- **base.lua** — Base module providing common handlers and hooks for IRC events.
- **base.moon** — MoonScript version of `base.lua`.
- **cap.lua** — Module handling IRC CAP (Client-to-Server Protocol) negotiation.
- **cap.moon** — MoonScript version of `cap.lua`.
- **data.lua** — Data management module, tracking channels and users.
- **data.moon** — MoonScript version of `data.lua`.
- **output.lua** — Logging output formatting for various IRC events.
- **output.moon** — MoonScript version of `output.lua`.