2024-09-05 18:49:18 +01:00
# Discord Multipurpose Bot
2024-08-31 02:34:09 +01:00
2024-09-05 18:49:18 +01:00
Welcome to the **Discord Multipurpose Bot** ! This bot manages user verification for Discord servers through email authentication, includes a fun trivia game feature, and provides role management and leaderboard tracking functionalities.
2024-08-31 02:34:09 +01:00
## Features
- **Email Verification**: Users receive a verification code via email and must enter it in Discord to verify their account.
- **Role Management**: Automatically assigns a specific role to users once they have been verified.
2024-09-05 18:49:18 +01:00
- **Trivia Game**: Play a video game-themed trivia game and compete with others in the server.
- **Leaderboard**: Displays the top players based on correct trivia answers.
- **Customizable**: Configure email domains, roles, trivia settings, and more to suit your server.
2024-08-31 02:34:09 +01:00
### Installation
1. **Clone the Repository**
```sh
2024-09-05 18:52:44 +01:00
git clone git@github.com:aydenjahola/discord-multipurpose-bot.git
2024-09-05 18:49:18 +01:00
```
```sh
2024-09-05 18:52:44 +01:00
cd discord-multipurpose-bot
2024-08-31 02:34:09 +01:00
```
2. **Install Dependencies**
```sh
npm install
```
3. **Set Up Environment Variables**
Create a `.env` file in the root directory and add the following:
```env
2024-08-31 10:03:09 +01:00
# Bot token
BOT_TOKEN=YOUR_BOT_TOKEN
# Nodemailer
EMAIL_NAME="Example"
EMAIL_USER=example@example.com
EMAIL_PASS=YOUR_EMAIL_PASS
# Allowed domains for email verification
2024-09-05 18:49:18 +01:00
EMAIL_DOMAINS=example@example.com // or it can be a list, example: example.com,example2.com
2024-08-31 10:03:09 +01:00
# Discord
GUILD_ID=YOUR_GUILD_ID
VERIFICATION_CHANNEL_NAME=YOUR_VERIFICATION_CHANNEL_NAME
VERIFIED_ROLE_NAME=YOUR_VERIFIED_ROLE_NAME
2024-09-05 18:49:18 +01:00
LOG_CHANNEL_ID=YOUR_LOG_CHANNEL_ID
MOD_ROLE_ID=YOUR_MOD_ROLE_ID
2024-08-31 10:03:09 +01:00
# Database
MONGODB_URI=YOUR_MONGODB_URI
2024-08-31 02:34:09 +01:00
```
2024-08-31 10:03:09 +01:00
this can also be seen in in the [.env.example ](./.env.example )
2024-08-31 02:34:09 +01:00
4. **Run the Bot**
```sh
node bot.js
```
2024-09-05 18:49:18 +01:00
## Usage
### Information Commands
- **/botinfo**: Displays information about the bot
- **/serverinfo**: Displays information about the server
### Utility Commands
- **/help**: Lists all available commands
- **/ping**: Replies with Pong! and bot latency
- **/uptime**: Shows how long the bot has been running
### Email Verification Commands
2024-08-31 02:34:09 +01:00
2024-09-05 18:52:44 +01:00
- **/verify `your_email@example.com` **: Sends a verification code to the provided email.
- **/code `your_code` **: Validates the provided verification code and completes the verification process.
2024-09-05 18:49:18 +01:00
### Moderation Commands
- **/purge**: Deletes messages from the channel
- **/userinfo**: Displays information about a user
- **/warn**: Issue a warning to a user
### Fun Commands
2024-09-06 01:23:00 +01:00
- **/trivia**: Starts a trivia game with video game-themed, Anime & Manga, Computers, Board Games, Comics, Cartoons & Animations, Film, General Knowledge, Science, Animals, Music, History and Geography & Nature (more to come soon!) questions. Players have 30 seconds to answer.
2024-09-05 18:52:44 +01:00
- Accepts both number answers (1-4) **or** the correct answer
- for example:
```sh
Trivia Question
In Terraria, which of these items is NOT crafted at a Mythril Anvil?
Option 1
Ankh Charm
Option 2
Sky Fracture
Option 3
Orichalcum Tools
Option 4
Venom Staff
```
2024-09-05 18:53:52 +01:00
##### **Answer**
2024-09-05 18:52:44 +01:00
```sh
1
```
**or**
```sh
Ankh Charm
```
2024-09-05 18:49:18 +01:00
- **/leaderboard**: Displays the top 10 players on the trivia leaderboard based on their correct answers.
### Other Functionalities
- **Role Management**: Once a user is verified, they are automatically assigned a predefined role.
- **Admin Log**: Admins can review logs of verification attempts and trivia games in a designated channel.