A Discord bot for managing member status with custom titles, images, and badges, offering a wide range of commands and advanced features.
- π Overview
- π¦ Features
- π Structure
- π» Installation
- ποΈ Usage
- π Hosting
- π License
- π Authors
This repository contains a Discord bot project called "discord-status-management-bot." This project aims to provide server communities with enhanced member status functionalities, including custom titles, images, and badges. Built using Discord.js, Node.js, and Mongoose, the bot offers a comprehensive suite of commands for managing these statuses and a range of additional features, including mini-games, server utilities, moderation tools, and advanced automation.
Feature | Description | |
---|---|---|
βοΈ | Architecture | The bot utilizes a modular architecture with separate directories for commands, services, models, and utilities, promoting maintainability and scalability. |
π | Documentation | This README file provides a detailed overview of the project, its dependencies, and instructions for installation and usage. |
π | Dependencies | The project relies on external libraries and packages such as discord.js , mongoose , dotenv , and axios , which are essential for interacting with the Discord API, managing data, and handling environment variables. |
𧩠| Modularity | The modular structure allows for easy maintenance and reusability of the code, with separate directories for different functionalities, including commands, services, and models. |
π§ͺ | Testing | The project includes unit tests for critical components, ensuring code reliability and preventing regressions. |
β‘οΈ | Performance | The bot is optimized for performance by utilizing asynchronous operations, caching strategies, and efficient data structures. |
π | Security | Security measures are implemented to protect user data and prevent unauthorized access, including input validation, sanitization, and rate limiting. |
π | Version Control | Utilizes Git for version control with GitHub Actions workflow files for automated build and release processes. |
π | Integrations | The bot integrates with various services, including Discord API for interacting with Discord servers and channels, and OpenAI for natural language processing and AI-powered features. |
πΆ | Scalability | The project is designed to handle a growing number of users and commands, utilizing efficient database and server configurations, and leveraging cloud-based hosting platforms for scalability. |
discord-status-management-bot/
βββ commands
β βββ status
β β βββ set.js
β β βββ update.js
β β βββ remove.js
β β βββ show.js
β β βββ help.js
β βββ minigames
β β βββ trivia.js
β β βββ wordle.js
β β βββ hangman.js
β β βββ help.js
β βββ server
β β βββ settings.js
β β βββ roles.js
β β βββ channels.js
β β βββ help.js
β βββ moderation
β β βββ mute.js
β β βββ unmute.js
β β βββ kick.js
β β βββ ban.js
β β βββ warn.js
β β βββ help.js
β βββ info
β β βββ serverinfo.js
β β βββ userinfo.js
β β βββ help.js
β β βββ stats.js
β βββ profile
β β βββ settheme.js
β β βββ setbackground.js
β β βββ setprofilepic.js
β β βββ help.js
β βββ polls
β β βββ create.js
β β βββ vote.js
β β βββ results.js
β β βββ help.js
β βββ music
β β βββ play.js
β β βββ skip.js
β β βββ stop.js
β β βββ queue.js
β β βββ loop.js
β β βββ nowplaying.js
β β βββ help.js
β βββ roles
β β βββ create.js
β β βββ assign.js
β β βββ remove.js
β β βββ help.js
β βββ automation
β β βββ schedule.js
β β βββ remind.js
β β βββ help.js
β βββ help.js
βββ events
β βββ ready.js
β βββ messageCreate.js
β βββ interactionCreate.js
β βββ guildMemberAdd.js
β βββ guildMemberRemove.js
β βββ guildMemberUpdate.js
βββ services
β βββ statusService.js
β βββ minigameService.js
β βββ serverService.js
β βββ moderationService.js
β βββ infoService.js
β βββ profileService.js
β βββ pollService.js
β βββ musicService.js
β βββ roleService.js
β βββ automationService.js
βββ models
β βββ statusModel.js
β βββ userModel.js
β βββ serverModel.js
β βββ pollModel.js
β βββ musicQueueModel.js
β βββ automationModel.js
βββ utils
β βββ commandHandler.js
β βββ logger.js
β βββ errorHandler.js
β βββ helperFunctions.js
β βββ configLoader.js
βββ config
β βββ env.config.js
β βββ database.config.js
βββ .env
βββ package.json
βββ README.md
- Node.js (v16 or higher)
- npm (or yarn)
- MongoDB
- Docker (optional)
- Clone the repository:
git clone https://github.com/coslynx/discord-status-management-bot.git
- Navigate to the project directory:
cd discord-status-management-bot
- Install dependencies:
npm install
- Set up MongoDB:
- Create a new MongoDB database.
- Set up environment variables in the
.env
file:MONGO_URI
: Your MongoDB connection string.
- Create a Discord bot application:
- Go to the Discord Developer Portal and create a new application.
- Create a bot user for your application.
- Obtain your bot token (keep it secret!).
- Set up bot token:
- Add your bot token to the
.env
file:DISCORD_TOKEN
: Your bot token.
- Add your bot token to the
- Start the bot:
npm start
- Go to the Discord Developer Portal and navigate to your bot application.
- In the "OAuth2" tab, select "Bot" for the "Scope" and check the "bot" permission.
- Click on "Copy" to copy the generated link.
- Open this link in your browser and authorize the bot to join your server.
Adjust configuration settings in config/env.config.js
and config/database.config.js
.
Setting a Status:
/set status "Playing my favorite game" -image [image url] -badge [badge name]
Playing a Trivia Game:
/trivia start
Muting a Member:
/mute [member id] [reason]
Using the Help Command:
/help [command name]
Additional Command Examples:
/update status
: Updates your current status./remove status
: Removes your current status./show status
: Displays your current status./serverinfo
: Displays server information./userinfo [member id]
: Displays user information./music play [song name]
: Plays a song./music skip
: Skips the current song./music stop
: Stops music playback./poll create [question] [options]
: Creates a poll./role create [role name] [permissions]
: Creates a role./role assign [member id] [role name]
: Assigns a role to a member./role remove [member id] [role name]
: Removes a role from a member./schedule [time] [task]
: Schedules a task./remind [time] [message]
: Sets a reminder.
- Build the project:
npm run build
- Deploy the build output to a hosting platform:
- Heroku:
- Create a new Heroku app.
- Set up environment variables (MONGO_URI, DISCORD_TOKEN) in the Heroku app settings.
- Push the build output to the Heroku app's Git repository.
- AWS:
- Create a new AWS EC2 instance.
- Install Node.js, npm, and MongoDB on the instance.
- Configure environment variables.
- Deploy the build output to the EC2 instance.
- Other Platforms:
- Use a similar process based on the chosen hosting platform's documentation.
- Heroku:
MONGO_URI
: MongoDB connection string.DISCORD_TOKEN
: Discord bot token.
This project is licensed under the MIT License.
- Author Name - Spectra.codes
- Creator Name - DRIX10
Why only generate Code? When you can generate the whole Repository!