The Discord Multipurpose Bot streamlines user verification through email codes, manages roles based on verification status, and includes interactive trivia games with leaderboard tracking for enhanced server engagement.
Find a file
2024-09-08 20:41:23 +01:00
commands
models
scripts
.env.example
.gitignore
index.js
LICENSE
package.json
Procfile
README.md

Discord Multipurpose Bot

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.

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.
  • 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.

Installation

  1. Clone the Repository
git clone git@github.com:aydenjahola/discord-multipurpose-bot.git
cd discord-multipurpose-bot
  1. Install Dependencies
npm install
  1. Set Up Environment Variables

Create a .env file in the root directory and add the following:

# 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
EMAIL_DOMAINS=example@example.com // or it can be a list, example: example.com,example2.com

# Discord
GUILD_ID=YOUR_GUILD_ID
VERIFICATION_CHANNEL_NAME=YOUR_VERIFICATION_CHANNEL_NAME
VERIFIED_ROLE_NAME=YOUR_VERIFIED_ROLE_NAME
LOG_CHANNEL_ID=YOUR_LOG_CHANNEL_ID
MOD_ROLE_ID=YOUR_MOD_ROLE_ID

# Database
MONGODB_URI=YOUR_MONGODB_URI

this can also be seen in in the .env.example

  1. Run the Bot
node bot.js

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

  • /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.

Moderation Commands

  • /purge: Deletes messages from the channel
  • /userinfo: Displays information about a user
  • /warn: Issue a warning to a user

Fun Commands

  • /trivia: Starts a trivia game with video game-themed, Anime & Manga, Computers, Board Games, Comics, Cartoons & Animations, Film, General Knowledge, Science, Animals, Music, History, Mythology and Geography & Nature (more to come soon!) questions. Players have 30 seconds to answer.

    • Accepts both number answers (1-4) or the correct answer
    • for example:
      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
      
      Answer
      1
      
      or
      Ankh Charm
      
  • /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.