A modular Discord bot for the Byte-Bash-Blitz server that monitors daily progress posts, awards points, tracks streaks, and provides API endpoints for monitoring.
- 🔍 Monitors 'basher-progress' category: Watches for messages in clan forum channels and their individual forums
- 📸 Screenshot validation: Ensures messages contain image attachments
- 📝 Text validation: Requires at least 35 words in the progress update
- 🎯 Daily point system: Awards 5 points once per day per member
- 🗄️ Database integration: Connects to Supabase to manage member points
- ✅ Visual feedback: Reacts with checkmark emoji when points are awarded
- Category Monitoring: The bot monitors all channels within the 'basher-progress' category
- Forum Detection: Specifically looks for forum channels and their individual forum threads
- Content Validation: Checks each message for:
- At least one image attachment (screenshot)
- Minimum 50 words of text content
- Daily Limit: Each member can only receive points once per day, regardless of how many messages they post
- Database Update: Awards 5 points with description format
PU-{date}(e.g., PU-20Sep25)
The bot expects these tables in your Supabase database:
id: Primary keydiscord_username: Discord username (used for matching)
member_id: Foreign key to members tableorganiser_id: Set to 77 (bot's unique ID)points: Number of points awarded (5 for daily updates)description: Format PU-{date}
Make sure your .env file contains:
DISCORD_BOT_TOKEN=your_bot_token
DISCORD_GUILD_ID=your_server_id
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key-
Install dependencies:
npm install
-
Start the bot:
npm start
-
Development mode (with auto-restart):
npm run dev
Make sure your Discord bot has these permissions:
- Read Messages
- Send Messages
- Add Reactions
- View Channels
- Read Message History
The bot provides detailed console logging:
- ✅ Successful point awards
- ❌ Failed validations (missing image, insufficient text, etc.)
- ℹ️ Duplicate submission attempts
- 🚀 Bot startup information
If you encounter any issues:
- Check the console logs for error messages
- Verify your Discord bot permissions
- Ensure your Supabase credentials are correct
- Make sure the 'basher-progress' category exists in your server