/pinger-bot

Simple discord bot for tracking your MineCraft servers.

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

pinger-bot

Support Ukraine

Build Status codecov Documentation Build Status Code style: black Python support versions badge DeepSource

Simple discord bot for tracking your Minecraft servers.

Features

  • Free! We don't want any money from you!
  • Can be self Hosted - the bot is fully under your control!
  • You can use it without any hosting!
  • Can grab MOTD from any server in one command!
  • Supports both Java and Bedrock servers!
  • Can be easily localized to your language!

Try it out!

Check the invite link to invite the bot to your server.

Screenshots

/ping

/alias

/statistic

Installing

git clone https://github.com/PerchunPak/pinger-bot.git
cd pinger-bot

Installing poetry

Next we need install poetry with recommended way.

If you use Linux, use command:

curl -sSL https://install.python-poetry.org | python -

If you use Windows, open PowerShell with admin privilages and use:

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -

Installing dependencies

poetry install --only main

Also, for bot working, you need specify which database you will use. For now, we only support SQLite, MySQL and PostgreSQL. For installing required dependence, we need just use argument -E with lower-cased database name.

Example:

poetry install --only main -E mysql

Compiling translations

This requered even if you want just use english.

pybabel compile -d locales

Database migrations

Those will create database for you. You do not need to create any tables by hand, just run this command:

alembic -c pinger_bot/migrations/alembic.ini upgrade head

Configuration

All bot configuration happens in config.yml, or with enviroment variables. All configuration settings described in config.py.

Database

When setting up a database, there are a few additional nuances:

  • If you want use SQLite, you need specify path to file. I recomend set absolute path.
  • What specify in field db_uri? See this page.

Run the bot

python pinger_bot

If something is not clear

You can always write me!

Using in Docker

See docs.

Updating

For updating, just redownload repository (do not forget save config and database), if you used git for donwloading, just run git pull.

After that, you need update translations and database, commands the same as in installing section:

pybabel compile -d locales
alembic -c pinger_bot/migrations/alembic.ini upgrade head

Thanks

This project was generated with python-template.