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.
- 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)
Invite MOCBOT into your Discord server here.
Type /
in your Discord server to see available commands. Alternatively, you may view all commands here
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.
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.- 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 istest
.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. - Copy
lavalink/application.template.yaml
tolavalink/application.yaml.local
, and replace any template values with your own. Ensure thatlavalink-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.
-
You will need MOCBOT API running (preferably locally). Clone the repo here. Follow the instructions in the README to get the API running.
-
Run
docker compose up --build -d
to start the bot.
If you have any feedback, please reach out to us at https://masterofcubesau.com/contact