Minecraft servers network management system disguised as a Discord bot.
The bot is tightly integrated with polychat2 which is a Forge/Bukkit server-side Minecraft mod needed for the incoming messages to be understood and handled correctly.
To view all the commands, simply type !help
in a server that has the bot, once it is running.
The bot integrates with Minecraft servers, providing the ability to view online servers and information about them (IP, name, amount of online players), as well as the ability for staff to perform administrative tasks such as restarting the servers and executing commands on them from Discord.
The bot automatically detects applications for the Member role posted to the #member-apps Discord channel and allows Staff to manage them (approve/reject), notifying the players of the outcome.
The bot synchronises Discord moderation with Minecraft moderation, allowing for bans/warns to be issued on Discord and on all Minecraft servers simultanously.
Tags system which allows moderators to add tags which are available via a command. Useful for adding answers to FAQs etc.
Comamnds that make it easier for Staff to diagnose problems so that they do not have to SSH in, for simple tasks such as checking the available SSD space on the dedicated server (a common issue).
The bot has two deployment methods:
Set up polychat2. Instructions for how to do so can be found in its Quickstart tutorial. IMPORTANT: ONLY SET UP THE CLIENTS, SERVER IS NOT NEEDED AND WILL INTERFERE WITH Mmcc.Bot
IF USED.
Clone this repository. From now on the root of the cloned repository will be refered to as ./
Initialise the submodules by running git submodule update --init --recursive
in ./
.
Install Docker.
Go to ./env
. If the folder does not exist, create it. Create a file called mariadb.env
, with the following contents:
MARIADB_ROOT_PASSWORD=placeholder
MARIADB_DATABASE=placeholder
MARIADB_USER=placeholder
MARIADB_PASSWORD=placeholder
Replace the placeholder with whatever values you want.
If you prefer setting environment variables in a different way, you can see all the available options docker has in the docker-compose manual.
Go to .src/Mmcc.Bot
. Locate the file called appsettings.default.json
and rename it to appsettings.json
. Open it and fill it in. IMPORTANT: In the MySql
section keep the IP set to db
and port to 3306
.
Run docker compose up
in ./
.
Install .NET 6 SDK
Install Entity Framework Core Tools
Install MariaDB or MySQL and start it. We strongly recommend MariaDB.
Create an empty database for the bot.
Create a user for the bot with all the necessary permissions (creating/deleting tables, read/write to the tables) in that database.
Go to .src/Mmcc.Bot
. Locate the file called appsettings.default.json
and rename it to appsettings.json
. Open it and fill it in. Remember to change the IP in the MySql
section to localhost
.
Duplicate the file and name the duplicate appsettings.Development.json
.
Open a terminal tab/window in the ./src/Mmcc.Bot.Database
directory and run dotnet ef database update
. This will apply all the necessary database migrations to the database you have specified in appsettings.Development.json
.
Open a terminal tab/window in ./
. Run dotnet publish ./src/Mmcc.Bot/Mmcc.Bot.csproj -c Release -o ./out
.
Start the bot by opening a terminal window/tab in ./out
and running dotnet Mmcc.Bot.dll
.