How stegripe/rawon works
Rawon is a Discord music bot, optionally running multiple bot instances. Its main user journey is a Discord command or request-channel action that selects music, adds it to a server queue, and controls playback in voice. The README also documents multi-source support, audio pre-caching, Google cookie login, and persistent settings. Some subsystem links reflect documented capabilities and directory names; unsampled wiring is left out.
Main entry points: PlayCommand.ts Play command · CommandContext.ts Command context · CommandManager.ts Command manager · ServerQueue.ts Server queue
Components 23
Bot runtime
- Bot client
src/bot.ts - Message listener
src/listeners/MessageCreateListener.ts - Interaction listener
src/listeners/InteractionCreateListener.ts - Command manager
src/utils/structures/CommandManager.ts - Multi-bot routing
src/utils/structures/MultiBotManager.ts - Multi-bot launcher
src/utils/structures/MultiBotLauncher.ts
Discord commands
- Command context
src/structures/CommandContext.ts - Play command
src/commands/music/PlayCommand.ts - Music controls
src/commands/music
Music playback
- Query classifier
src/utils/handlers/general/checkQuery.ts - Search and resolve
src/utils/handlers/general - General music utility
src/utils/handlers/GeneralUtil.ts - Server queue
src/structures/ServerQueue.ts - Song manager
src/utils/structures/SongManager.ts - Audio pre-cache
src/utils/structures/AudioCacheManager.ts - Voice playback
src/utils/handlers/YTDLUtil.ts
State and routing
- Request channel
src/utils/structures/RequestChannelManager.ts - SQLite data
src/utils/structures/SQLiteDataManager.ts
Media integrations
- Google login
src/utils/structures/GoogleLoginManager.ts - Music sources
Other components
- Discord user
- Discord
- Google login site
Connections 21
- Discord user → Discord: sends command
- Discord → Message listener: delivers message
- Discord → Interaction listener: delivers interaction
- Message listener → Command manager: dispatches command
- Interaction listener → Command manager: dispatches command
- Command manager → Command context: builds context
- Command context → Play command: invokes
- Command context → Music controls: invokes
- Request channel → Music controls: offers controls
- Play command → Query classifier: classifies query
- Play command → Search and resolve: resolves request
- Search and resolve → Music sources: searches sources
- Play command → Server queue: queues tracks
- General music utility → Server queue: handles playback
- Server queue → Song manager: manages songs
- General music utility → Voice playback: streams audio
- Audio pre-cache → Music sources: fetches audio
- Multi-bot launcher → Multi-bot routing: coordinates bots
- Bot client → SQLite data: uses persistent data
- Google login → Google login site: authenticates
- Google login → SQLite data: stores session state