SkillAgentSearch skills...

Padio

This is an advanced radio bot for Discord voice channels, allowing users to enjoy a wide variety of trending online radios with high quality and seamless performance.

Install / Use

npx skills add Persian-Caesar/Padio

Installs into whichever agent you are using.

README

Padio (Persian Caesar Discord Radio Bot)

A High-Performance Radio & Utility Bot for Discord
Developed by Sobhan-SRZA (mr.sinre)
GitHub: Persian-Caesar | Support: dsc.gg/persian-caesar

Version: 0.0.4
Developed by: Sobhan-SRZA (mr.sinre)
GitHub: https://github.com/Sobhan-SRZA
Support Server: https://dsc.gg/persian-caesar
Copyright © Persian Caesar – All rights reserved.


Overview

Persian Caesar Radio Bot is a Discord voice radio bot built using TypeScript and Discord.js v14, designed to stream high-quality online radio stations directly into voice channels. It features:

  • Online radio streaming with voice channel control panels

  • Slash & message command hybrid system

  • Multi-language support (en, per, jp, th, tr, zh)

    • English (Default)
    • فارسی (Farsi)
    • Türkçe (Turkish - Istanbul)
    • 中文 (Chinese)
    • 日本語 (Japanese)
    • ภาษาไทย (Thai)
  • Dynamic status updates & server statistics

  • Cooldowns, permissions, and owner-only commands

  • QuickDB integration (JSON, MySQL, SQLite, MongoDB)

  • Advanced logging & error reporting via webhooks

  • Database support: JSON, MySQL, SQLite, MongoDB

  • Slash & message commands with autocomplete

  • Anti-crash, error webhook logging, status loop

  • Owner-only commands, cooldown, permission checks

How It Works (Architecture)

Client (DiscordClient)
│
├── Events → interactionCreate, ready, guildCreate/Delete
├── Handlers → Load commands & events
├── Utils → Helper functions (response, error, cooldown, etc.)
├── Storage → Embed data, radio stations, language list
├── Types → Interfaces, global extensions
├── Model → Client, Database, PlayerManager
└── locales/ → Language JSON files

Key Features:

  • Play 50+ radio stations (Persian Rap, Lofi, Anime, EDM, etc.)
  • Customizable per-server settings (prefix, language, AFK channel, radio panel)
  • Interactive control panel with buttons and select menus
  • Multilingual support (English, Persian, Turkish, Chinese, Japanese, Thai)
  • Database support: JSON, MySQL, SQLite, MongoDB
  • Slash & message commands
  • Anti-crash system, error logging to Discord webhook
  • Status loop, presence rotation, uptime tracking
  • AFK mode, voice channel management, volume control
  • Owner-only commands, cooldown system, permission checks

Core Features

| Feature | Description | | --------------------------- | -------------------------------------------------------------------- | | Radio Player | Stream high-quality online radio stations in voice channels | | Control Panel | Interactive message panel with station selector | | AFK Mode | Auto-resume playback if users leave voice | | Slash & Prefix Commands | Full hybrid command support | | Multilingual | 6 languages with dynamic switching | | Database Flexibility | JSON, MySQL, SQLite, MongoDB | | Auto Status Updates | Live bot stats in support server | | Error Logging | Webhook-based crash & error reporting | | Custom Extensions | Global .toCapitalize(), .replaceValues(), .HexToNumber(), etc. |

Core Flow:

  1. Bot starts → Loads config → Connects to database → Loads commands/events
  2. User runs commandinteractionCreate → Permission & cooldown check → Execute command
  3. Radio playplay command → Join voice → Stream from URL → Create control panel
  4. Panel interaction → Button/menu → Update player state (pause, resume, volume, stop)

Policies & Guidelines

  • Credit Required: You must credit "Persian Caesar" in any public use, documentation, or communication.
  • No Token Sharing: Never expose .env or bot token.
  • No Malicious Use: Do not use for spam, harassment, or illegal activities.
  • Forking Allowed: You may fork, but keep the copyright notice.
  • Support: Issues → Open GitHub issue or join support server.

Technologies & Packages

| Package | Version | Purpose | | -------------------- | ---------- | ------------------------------------------------------------ | | @discordjs/opus | ^0.10.0 | Opus audio encoder/decoder for voice | | @discordjs/voice | ^0.19.0 | Voice connection & audio streaming | | @snazzah/davey | ^0.1.7 | Utility for Discord.js (used in extensions) | | colors | ^1.4.0 | Colored console output (fallback for chalk) | | discord.js | ^14.24.2 | Discord API wrapper | | dotenv | ^17.2.3 | Load environment variables from .env | | ffmpeg-static | ^5.2.0 | Static FFmpeg binary for audio processing | | libsodium-wrappers | ^0.7.15 | Sodium encryption for voice (required by @discordjs/voice) | | quick.db | ^9.1.7 | Lightweight database (JSON/MySQL/SQLite) | | quickmongo | ^5.2.0 | MongoDB driver (optional) | | typescript (dev) | ^5.9.3 | TypeScript compiler | | @types/node (dev) | ^22.19.0 | Node.js type definitions |

Node.js Version: >=18.0.0


Project Structure

src/
├── index.ts                    → Entry point
├── config.ts                   → Config file befor compile
├── .env                        → env file for setup (you can use config.ts btw it's optional)
├── README.md                   # This file. (Documents)
├── events/                     # Event listeners
│   ├── autocomplete/
│   │   └── interactionCreate.ts
│   ├── button/
│   │   └── interactionCreate.ts
│   ├── change status/
│   │   └── clientReady.ts
│   ├── guilds logger/
│   │   ├── guildCreate.ts
│   │   └── guildDelete.ts
│   ├── message command handler/
│   │   └── messageCreate.ts
│   ├── radio/
│   │   ├── clientReady.ts
│   │   ├── interactionCreate.ts
│   │   └── voiceStateUpdate.ts
│   ├── report/
│   │   └── interactionCreate.ts
│   ├── slash command handler/
│   │   └── interactionCreate.ts
│   └── trigger/
│       ├── clientReady.ts
│       └── interactionCreate.ts
├── functions/                   # Utility functions
│   ├── logger.ts
│   ├── post.ts
│   ├── setupGlobalExtensions.ts
│   ├── sleep.ts
│   └── strToMs.ts
├── handlers/                    # Command & event loaders
│   ├── commandHandler.ts
│   └── eventsHandler.ts
├── model/                       # Core classes
│   ├── Client.ts
│   ├── Database.ts
│   └── PlayerManager.ts
├── types/                       # TypeScript interfaces & types
│   ├── database.ts              → DB type aliases
│   ├── global.d.ts              → Global extensions
│   ├── interfaces.ts            → Command, Language, Config
│   └── types.ts                 → General types
├── utils/                       # Helper utilities
│   ├── checkCmdCooldown.ts
│   ├── checkCmdPerms.ts
│   ├── checkPlayerPerms.ts
│   ├── database.ts
│   ├── dbAccess.ts
│   ├── error.ts
│   ├── getAuthor.ts
│   ├── GetInvite.ts
│   ├── interactionTools.ts
│   ├── repeatAction.ts
│   ├── response.ts
│   ├── responseDelete.ts
│   ├── responseEdit.ts
│   ├── responseError.ts
│   ├── selectLanguage.ts
│   ├── SendGuildAlert.ts
│   ├── StatusEmbedBuilder.ts
│   └── yes-or-no.ts
├── commands/
│   ├── Admin/setup.ts           → Server setup (panel, prefix, language)
│   ├── Misc/
│   │   ├── about.ts             → Bot stats & updates
│   │   ├── help.ts              → Interactive help menu
│   │   ├── invite.ts            → Invite links
│   │   ├── ping.ts              → Latency & system stats
│   │   └── report.ts            → Report system
│   ├── Music/
│   │   ├── afk.ts               → Set AFK voice channel
│   │   ├── pause.ts             → Pause radio
│   │   ├── play.ts              → Play station (autocomplete)
│   │   ├── resume.ts            → Resume radio
│   │   ├── stop.ts              → Stop radio
│   │   └── volume.ts            → Volume control
│   └── Owner/
│       ├── guilds.ts            → List all guilds (pagination)
│       └── setactivity.ts       → Set custom presence
└── storage/
    ├── locales/
    │   ├── en.json              → English
    │   ├── per.json             → فارسی
    │   ├── tr.json              → Türkçe
    │   ├── zh.json              → 中文
    │   ├── jp.json              → 日本語
    │   └── th.json              → ภาษาไทย
    ├── EmbedData.ts             → Colors, emotes, footer
    ├── languages.json           → List of supported languages
    └── radiostation.json        → All radio URLs

Note: locales/*.json files contain full translation for all bot messages.


Key Changes & Fixes (Latest Update)

| File | Change | Description | | ---------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------- | | clientReady.ts | Fixed stats_channel reference | Previously used invalid config.discord.support.stats_channel. Now safely falls back to support.id if mi

Related Skills

View on GitHub
GitHub Stars6
CategoryDevelopment
Updated20h ago
Forks1

Languages

TypeScript

Security Score

90/100

Audited on Aug 7, 2026

No findings