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

3.5 KiB

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 1.40+
  • Discord Bot Token
  • Discord Application with slash commands enabled

Installation

  1. Clone the repository:
git clone <repository-url>
cd EllyProject
  1. Copy and configure the config file:
cp config.toml.example config.toml
# Edit config.toml with your settings
  1. Set up environment variables:
export DISCORD_TOKEN="your-bot-token"
  1. Run the bot:
deno task start

Development

# 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.