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.yamland.env.localwork together to provide the necessary configuration for MOCBOT, to simulate the environment variables that would be provided in the cluster when deployed.docker-compose.yamlcreates Lavalink and MOCBOT containers, and links them together. All these files should not need changing.- Create a
.local-secretsfolder in the root directory of the project. This folder should contain the following files:Filename Description api-keyThe API key to connect to MOCBOT API. Assuming you are running the MOCBOT-APIrepo locally without changes, the default APIKey set in that repo istest.bot-tokenThe token of the Discord bot lavalink-passwordThe password for the Lavalink server. Take note of this to put in the Lavalink config as well. socket-keyThe key that will allow other services to connect to MOCBOT's socket. This should be the SHA256 hash of the intended key. - Copy
lavalink/application.template.yamltolavalink/application.yaml.local, and replace any template values with your own. Ensure thatlavalink-passwordis 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 -dto start the bot.
If you have any feedback, please reach out to us at https://masterofcubesau.com/contact
