How syihabudin081/tapir-bot works
This is a Discord bot combining music playback, AI-generated social responses, and utility commands. Users send prefix commands in Discord; the event handler parses them and dispatches the matching command. Music playback creates a player, resolves a track through Lavalink, and queues or plays it; social commands can request text from OpenAI and reply in Discord. Startup initializes Discord and the Lavalink clients, then loads commands and events after a node is ready. README-documented commands are included, but unsampled command implementations and their detailed internal calls are not inferred.
Main entry points: eventHandler.ts Event and prefix routing · index.ts Startup and clients · play.ts Play command · compliment.ts Compliment command
Components 22
Bot runtime
- Startup and clients
src/index.ts - Command loader
src/handlers/commandHandler.ts - Event and prefix routing
src/handlers/eventHandler.ts - Interaction routing
src/events/interactionCreate.ts - Logging
src/utils/logger.ts
Music playback
- Player and queue client
src/index.ts - Lavalink client
src/index.ts - Play command
src/commands/play.ts - Queue command
src/commands/queue.ts - Skip command
src/commands/skip.ts - Stop command
src/commands/stop.ts
Social commands
- Compliment command
src/commands/compliment.ts - Roast command
src/commands/roast.ts - Hug command
src/commands/hug.ts - Kiss command
src/commands/kiss.ts
Utility commands
- Ping command
src/commands/ping.ts - Debug command
src/commands/debug.ts
Other components
- Discord user
- Discord
- Lavalink server
- OpenAI API
- GIF media
Connections 34
- Startup and clients → Command loader: loads commands
- Startup and clients → Event and prefix routing: loads events
- Startup and clients → Lavalink client: initializes
- Startup and clients → OpenAI API: initializes
- Startup and clients → Logging: logs through
- Lavalink client → Lavalink server: connects to
- Event and prefix routing → Discord: registers listeners
- Discord user → Discord: sends commands
- Discord → Event and prefix routing: delivers messages
- Event and prefix routing → Play command: dispatches
- Event and prefix routing → Queue command: dispatches
- Event and prefix routing → Skip command: dispatches
- Event and prefix routing → Stop command: dispatches
- Event and prefix routing → Compliment command: dispatches
- Event and prefix routing → Roast command: dispatches
- Event and prefix routing → Hug command: dispatches
- Event and prefix routing → Kiss command: dispatches
- Event and prefix routing → Ping command: dispatches
- Event and prefix routing → Debug command: dispatches
- Event and prefix routing → Interaction routing: registers
- Interaction routing → Discord: handles interactions
- Play command → Player and queue client: creates player
- Play command → Lavalink client: resolves track
- Play command → Discord: replies
- Compliment command → OpenAI API: generates text
- Roast command → OpenAI API: generates text
- Kiss command → OpenAI API: generates text
- Compliment command → Discord: replies
- Roast command → Discord: replies
- Hug command → Discord: replies with GIF
- Kiss command → Discord: replies
- Ping command → Discord: replies
- Debug command → Lavalink client: checks node status
- Debug command → Discord: replies