# Elly Discord Bot A modern Discord bot for PikaNetwork guild management, built with TypeScript and Deno. ## Features - **PikaNetwork Statistics**: View BedWars and SkyWars stats for any player - **Guild Management**: Track guild members, activity reports, and updates - **Applications System**: Handle guild member applications with voting - **Suggestions System**: Community suggestions with upvote/downvote - **Family System**: Marriage, adoption, and relationship tracking - **QOTD System**: Question of the Day management - **Reminders**: Personal reminder system - **Staff Simulator**: Fun PikaNetwork staff simulation game - **Channel Filtering**: Media-only channel enforcement - **Moderation**: Ban, purge, role management ## Requirements - [Deno](https://deno.land/) 1.40+ - Discord Bot Token - Discord Application with slash commands enabled ## Installation 1. Clone the repository: ```bash git clone cd EllyProject ``` 2. Copy and configure the config file: ```bash cp config.toml.example config.toml # Edit config.toml with your settings ``` 3. Set up environment variables: ```bash export DISCORD_TOKEN="your-bot-token" ``` 4. Run the bot: ```bash deno task start ``` ## Development ```bash # Run with watch mode deno task dev # Type check deno task check # Lint deno task lint # Format deno task fmt ``` ## Configuration All configuration is done through `config.toml`. See the file for available options: - **bot**: Bot name, prefix, status, owners - **database**: SQLite database path - **api**: PikaNetwork API settings - **guild**: Target guild ID and name - **channels**: Channel names for various features - **roles**: Role names for permissions - **features**: Enable/disable features - **limits**: Various limits (max days, messages, etc.) - **colors**: Embed colors - **logging**: Log level and file path ## Commands ### Statistics - `/bedwars [mode] [interval]` - View BedWars stats - `/skywars [mode] [interval]` - View SkyWars stats - `/guild ` - View guild information ### Applications - `/applications accept ` - Accept an application - `/applications deny ` - Deny an application - `/applications blacklist ` - Blacklist from applications ### Suggestions - `/suggest <description>` - Create a suggestion - `/suggestion accept <id>` - Accept a suggestion - `/suggestion deny <id> <reason>` - Deny a suggestion ### Family - `/marry <user>` - Propose marriage - `/divorce` - Divorce your partner - `/adopt <user>` - Adopt someone - `/relationship [user]` - View relationships ### Utility - `/remind <duration> <text>` - Set a reminder - `/reminders` - View your reminders - `/away <user> <days> <reason>` - Set away status ### Moderation - `/purge <amount>` - Delete messages - `/ban <user> [reason]` - Ban a user - `/role <user> <role> <add|remove>` - Manage roles ## Project Structure ``` src/ ├── index.ts # Entry point ├── client/ # Discord client ├── config/ # Configuration ├── api/pika/ # PikaNetwork API client ├── database/ # Database layer ├── commands/ # Slash commands ├── components/ # UI components ├── events/ # Event handlers ├── services/ # Business logic ├── utils/ # Utilities └── types/ # TypeScript types ``` ## License MIT ## Credits Ported from the GEM Discord bot (Python/discord.py) to TypeScript/Discord.js with Deno.