A Discord bot built for learning and entertainment purposes, featuring mess menu automation, lyrics fetching, and interactive commands.
- Automated meal notifications - Sends custom reminders based on user-configured schedules
- Mess menu display - View today's or complete weekly menu from cloud storage
- Multi-server support - Each server can have its own menu and schedule
- Cloud-based menu storage - Menus stored on Cloudinary and managed via web interface
- Lyrics fetching - Get song lyrics from Genius API
- CLI chat interface - Send messages through terminal (local development)
- Slash commands - Modern Discord command interface
- Clone the repository
- Install dependencies:
npm install - Create a
.envfile with your bot token, MongoDB URI, and API keysBOT_TOKEN- Your Discord bot tokenMONGO_URI- MongoDB Atlas connection string
- Deploy slash commands:
node deployGuildCmds.js(for immediate server deployment) - Start the bot:
node luci.js
/help - Display help menu
/ping - Test bot response
/menu - Show full mess menu for the week
/today - Show today's complete mess menu
/breakfast - Show today's breakfast menu
/lunch - Show today's lunch menu
/snacks - Show today's snacks menu
/dinner - Show today's dinner menu
lyr song artist - Fetch lyrics from Genius API
node luci.js - Start main bot
node vc.js - Connect to voice channel
node deployGuildCmds.js - Deploy commands to specific server
node deployCmds.js - Deploy commands globally (takes up to 1 hour)
Menus are now managed through a web interface where users can:
- Upload Excel files containing the weekly menu
- Configure reminder channels for each server
- Set custom reminder times for breakfast, lunch, snacks, and dinner
- Select roles to ping in notifications
The bot automatically:
- Fetches menu data from Cloudinary
- Sends reminders at configured times
- Pings the selected roles
- Polls the database every 5 minutes for updates
- Updates in real-time when users add or modify configurations on the website
- Automatically sets up notifications when bot joins a new server
- Removes old schedules when configurations are deleted
Menu and notification settings are now configured through the web interface. The bot automatically loads:
- Menu files from Cloudinary URLs stored in MongoDB
- Channel configurations from user uploads
- Reminder schedules from user meal schedules
- Role configurations for pings
Update your Discord server ID in deployGuildCmds.js for server-specific command deployment.
- discord.js
- mongoose
- axios
- node-cron
- genius-lyrics
- dotenv