85 lines
2.3 KiB
Markdown
85 lines
2.3 KiB
Markdown
# MineBot
|
|
|
|
A Discord bot for managing your Minecraft server via [Minecraft Minder](https://git.zyphon.com/will/minecraft-minder)
|
|
|
|
Forked from [SparkBot](https://github.com/jkkicks/SparkBot)
|
|
|
|
## Prerequisites
|
|
|
|
- Go to https://discord.com/developers/applications and make an application
|
|
- Go to the Bot page.
|
|
- Copy `env.dist` to `.env` and add the Bot Token to this file.
|
|
- Choose what channels you want the bot to operate in on your server and add their IDs to the file as well.
|
|
|
|
## Installation
|
|
|
|
- Get this source code:
|
|
|
|
```
|
|
cd /opt
|
|
git clone https://git.zyphon.com/will/MineBot.git
|
|
cd MineBot
|
|
```
|
|
|
|
- It's best to run services as non-root users:
|
|
```
|
|
sudo useradd minebot
|
|
sudo mkdir /home/minebot
|
|
sudo chown minebot:minebot /home/minebot
|
|
sudo chown -R minebot:minebot /opt/MineBot
|
|
```
|
|
|
|
- Create a startup script (this is for systemd on i.e. Ubuntu):
|
|
|
|
```
|
|
[Unit]
|
|
Description=MineBot Service
|
|
After=multi-user.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=minebot
|
|
Group=minebot
|
|
Restart=always
|
|
WorkingDirectory=/opt/MineBot
|
|
ExecStart=/usr/bin/python3 /opt/MineBot/main.py
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
- This bot requires Python 3, so ensure you have that on your system.
|
|
- Run `sudo -u minebot pip install -r requirements.txt` to install Python dependencies.
|
|
|
|
## Running
|
|
|
|
- Run `sudo service minebot start` or for testing/development you can run `python3 main.py`
|
|
- Hide sensitive data from other users:
|
|
- `sudo chmod 600 /opt/MineBot/bot_data.db /opt/MineBot/bot.log .env`
|
|
- You probably want to run MineBot automatically on system startup:
|
|
- `sudo systemctl enable minebot`
|
|
|
|
## Usage
|
|
|
|
### Command Tree
|
|
|
|
```
|
|
/addserver - Add a Minecraft server to the bot (global)
|
|
/adduser - Add a user to a Minecraft server (global)
|
|
/removeuser - Remove a user from a Minecraft server
|
|
/listservers - List the Minecraft servers you have access to
|
|
/status - Get the status of the first Minecraft server you have acces to
|
|
/start - Start the first Minecraft server you have acces to
|
|
```
|
|
|
|
#### Hidden commands
|
|
```
|
|
/99 - Brooklyn 99 Quotes
|
|
/shutdown - Kill the bot (global)
|
|
/sync - Sync the slash-command tree with Discord
|
|
```
|
|
|
|
## Database
|
|
|
|
Initialization of the structure is automatically handled inside `main.py` and
|
|
creates the SQLITE3 file `bot_data.db`. |