Skip to content

Kaktushose/NPLAY-Bot

Repository files navigation

Java CI Deploy Codacy Badge Generic badge license-shield discord

NPLAY-Bot

This bot was created specifically for the Discord server of the german YouTuber and Twitch Streamer NPLAY. The core feature of this bot is a leveling system, similar to Mee6, but with a high level of customization. In addition, there are various temporary events, a karma system, rewards, permissions and many other useful features.

Test Server

The bot is in constant development. Join the test server to receive regular updates, make suggestions and test preview versions. This is also the place to get support if you want to host the bot by yourself.

Installation

Due to the high level of customization, I do not provide a public instance that anyone can invite. However, you can still host your own version of the bot. Therefore, you should have a basic understanding of Docker, PostgresSQL and of course Discord bots in general.

Important

The bot is designed to only run on a single guild. Multiple guilds are not supported.

1. Clone the repo

git clone https://github.com/Kaktushose/NPLAY-Bot.git

2. Initial Configuration

Rename the .env.example file to .env and provide the given values.

POSTGRES_DB=database
POSTGRES_USER=user
POSTGRES_PASSWORD=password
POSTGRES_URL=jdbc:postgresql://postgres:5432/database
GF_SECURITY_ADMIN_PASSWORD=password
BOT_GUILD=0123456789
BOT_TOKEN=bot_token

3. Start the bot

Start the bot by running:

docker compose up

Note

The default docker-compose.yml will also start up Grafana and Watchtower. These services aren't necessary to run the Bot, so feel free to remove them.

4. Further Configuration

To make the bot work properly, you now have to populate the Database correctly.

  1. Update the role ids inside the item_types and ranks table
  2. Update the channel ids inside the bot_settings table
  3. Add your karma vote emojis (e.g. 👍) inside the karma_settings table
  4. Use the /rank-config valid-channels add command to whitelist channels for the xp system
  5. Manage the permissions with the /permissions role edit and /permissions user edit commands

That's it. The bot is now fully functional.

Credits

I want to thank the following people in now particular order:

  1. SimuPlays for creating the concept
  2. Combauer for his support with the concept and the logo creation
  3. 1Flo3 for testing
  4. MeerBiene for his support and general ideas and for keeping me sane
  5. And of course the rest of the NPLAY Discord Team