Skip to content

mocbotau/mocbot-bot

Repository files navigation

github_banner_slim

GPLv3 License

MOCBOT: The Discord Bot

MOCBOT is a discord bot made to solve all your automation needs. MOCBOT allows for automated Discord server management.

Manage MOCBOT configuration through the MOCBOT Website.

Authors

Features

  • User XP/Levels (Voice and Text XP dsitribution, Server Leaderboards, Role Rewards, XP Management)
  • Private Lobbies (Create your own private lobby and allow specific people to access it)
  • Music (Play any media from sources like YouTube, Spotify, SoundCloud and Apple Music)
  • Music Filters (Spice up your music with some cool effects)
  • User Management (Kicks/Bans/Warnings)
  • Customisable Announcement Messages
  • Channel Purging
  • Bot Logging (To be ported)
  • User Verification (To be ported)
  • Support Tickets (To be ported)

Usage

Invite MOCBOT into your Discord server here.

Type / in your Discord server to see available commands. Alternatively, you may view all commands here

Deployment

MOCBOT is intended to be deployed into Kubernetes via a custom Helm chart. This repository is setup for local development in an isolated environment using Docker.

Local Development:

  1. config.yaml and .env.local work together to provide the necessary configuration for MOCBOT, to simulate the environment variables that would be provided in the cluster when deployed. docker-compose.yaml creates Lavalink and MOCBOT containers, and links them together. All these files should not need changing.
  2. Create a .local-secrets folder in the root directory of the project. This folder should contain the following files:
    Filename Description
    api-key The API key to connect to MOCBOT API. Assuming you are running the MOCBOT-API repo locally without changes, the default APIKey set in that repo is test.
    bot-token The token of the Discord bot
    lavalink-password The password for the Lavalink server. Take note of this to put in the Lavalink config as well.
    socket-key The key that will allow other services to connect to MOCBOT's socket. This should be the SHA256 hash of the intended key.
    spotify-client-id The client ID for the Spotify API.
    spotify-client-secret The client secret for the Spotify API.
  3. Copy lavalink/application.template.yaml to lavalink/application.yaml.local, and replace any template values with your own. Ensure that lavalink-password is the same as the one in .local-secrets/lavalink-password.

4a. If you already have a YouTube refresh token, you can directly put it into application.yaml.local.

4b. If you do not have a YouTube refresh token, comment out the refreshToken line in application.yaml.local, set skipInitialization to false and run docker compose up -d lavalink to start the Lavalink server. Keep an eye on the logs. You will see a message telling you to visit https://google.com/device to enter a code. Once done, Lavalink will print out the refresh token. Copy this token into application.yaml.local, and set skipInitialization to true.

Caution

DO NOT use your own Google account to generate the refresh token. There is a possibility that the account may be banned from using the YouTube API. Use a burner account instead.

  1. You will need MOCBOT API running (preferably locally). Clone the repo here. Follow the instructions in the README to get the API running.

  2. Run docker compose up --build -d to start the bot.

Feedback

If you have any feedback, please reach out to us at https://masterofcubesau.com/contact

License

GPL v3

About

A simple solution to automating your Discord Server!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •