Files
AuroraBot-discord/bot/modules/trivia/README.md
2026-01-11 14:37:17 +01:00

4.0 KiB

Trivia - Components v2 Implementation

This trivia feature uses Discord Components v2 for a premium visual experience.

🎨 Visual Features

Container with Accent Colors

Each trivia question is displayed in a Container with a colored accent bar that changes based on difficulty:

  • 🟢 Easy: Green accent bar (0x57F287)
  • 🟡 Medium: Yellow accent bar (0xFEE75C)
  • 🔴 Hard: Red accent bar (0xED4245)

Modern Layout Components

  • TextDisplay - Rich markdown formatting for question text
  • Separator - Visual spacing between sections
  • Container - Groups all content with difficulty-based styling

Interactive Features

Give Up Button - Players can forfeit if they're unsure
Disabled Answer Buttons - After answering, buttons show:

  • Green for correct answer
  • Red for user's incorrect answer
  • Gray for other options

Time Display - Shows both relative time (in 30s) and seconds remaining
Stakes Preview - Clear display: 50 AU ➜ 100 AU

📁 File Structure

bot/modules/trivia/
├── trivia.view.ts          # Components v2 view functions
├── trivia.interaction.ts   # Button interaction handler
└── README.md              # This file

bot/commands/economy/
└── trivia.ts              # /trivia slash command

🔧 Technical Details

Components v2 Requirements

  • Uses MessageFlags.IsComponentsV2 flag
  • No embeds or content fields (uses TextDisplay instead)
  • Numeric component types:
    • 1 - Action Row
    • 2 - Button
    • 10 - Text Display
    • 14 - Separator
    • 17 - Container
  • Max 40 components per message (vs 5 for legacy)

Button Styles

  • Secondary (2): Gray - Used for answer buttons
  • Success (3): Green - Used for "True" and correct answers
  • Danger (4): Red - Used for "False", incorrect answers, and "Give Up"

🎮 User Experience Flow

  1. User runs /trivia
  2. Sees question in a Container with difficulty-based accent color
  3. Can choose to:
    • Select an answer (A/B/C/D or True/False)
    • Give up using the 🏳️ button
  4. After answering, sees result with:
    • Disabled buttons showing correct/incorrect answers
    • Container with result-based accent color (green/red/yellow)
    • Reward or penalty information

🌟 Visual Examples

Question Display

┌─[GREEN]─────────────────────────┐
│ # 🎯 Trivia Challenge          │
│ 🟢 Easy • 📚 Geography         │
│ ───────────────────────────     │
│ ### What is the capital of      │
│     France?                     │
│                                 │
│ ⏱️ Time: in 30s (30s)          │
│ 💰 Stakes: 50 AU ➜ 100 AU      │
│ 👤 Player: Username            │
└─────────────────────────────────┘
[🇦 A: Paris] [🇧 B: London]
[🇨 C: Berlin] [🇩 D: Madrid]
[🏳️ Give Up]

Result Display (Correct)

┌─[GREEN]─────────────────────────┐
│ # 🎉 Correct Answer!           │
│ ### What is the capital of      │
│     France?                     │
│ ───────────────────────────     │
│ ✅ Your answer: Paris          │
│                                 │
│ 💰 Reward: +100 AU             │
│                                 │
│ 🏆 Great job! Keep it up!      │
└─────────────────────────────────┘
[✅ A: Paris] [❌ B: London]
[❌ C: Berlin] [❌ D: Madrid]
(all buttons disabled)

🚀 Future Enhancements

Potential improvements:

  • Thumbnail images based on trivia category
  • Progress bar for time remaining
  • Streak counter display
  • Category-specific accent colors
  • Media Gallery for image-based questions
  • Leaderboard integration in results