Files
EllyDiscordBot/README.md
2025-12-12 16:54:00 +00:00

146 lines
3.5 KiB
Markdown

# 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 <repository-url>
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 <username> [mode] [interval]` - View BedWars stats
- `/skywars <username> [mode] [interval]` - View SkyWars stats
- `/guild <name>` - View guild information
### Applications
- `/applications accept <user>` - Accept an application
- `/applications deny <user> <reason>` - Deny an application
- `/applications blacklist <user>` - Blacklist from applications
### Suggestions
- `/suggest <title> <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.