/Barista-Gerald

Gerald general purpose discord bot.

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Barista-Gerald

Project Status: Active GPLv3 license Build Status

The Java Version of the Gerald Discord Bot

Welcome to Gerald! Gerald is just another bot for your lovely Discord server! To give you a rough overview here are some of the main features:

  • No Nitro? No problem! Nitrolite uses some magic code to allow you to use your favourite emotes anywhere with Gerald!
  • Chat with GeraldAI: We have implemented a ChatAI into our bot to allow users to chat with him in real time. Type \chat enable in a channel to enable it
  • Dig Tunnels: You can dig tunnels to channels of other servers (or your own), this allows you to connect two textchannels. The messages of one channel will be mirrored to the channel and vice versa!
  • Play with Gerald: The Bot includes implementations of various "mini-games" like "Would you rather", Deathmatches or Fruit Guessing
  • Compile Code: You can use Gerald to let an online compiler run some code for you
  • Hugs, Headpats, all your favourite actions accompanied by animated gifs!
  • Various other commands: Because we have lots of random commands like 8ball, inspiro, random facts, emojify and much, much more!

Gerald's Prefix: \

To invite Gerald you can just click here

About us

Are you having troubles or questions about Gerald or want to talk to the developers? You can join our development Discord server and get the support you need there:

Discord Banner 2

Built with

Setting up Gerald yourself

You want to host Gerald yourself? No problem just follow the following steps, and you are good to go:

  • Download the latest stable build from the releases tab or check out our developer builds on our Jenkins (direct download)
  • Create a file with name "GeraldConfig.properties" with following content:
        defaultPrefix=COMMAND_PREFIX
        token=DISCORD_TOKEN
        hibernate.User=POSTGRES_USER
        hibernate.Password=POSTGRES_PASSWORD
  • Set up a local Postgres Database with a database named "BaristaDB" - You may need a database management panel like PGAdmin to do this!
  • If you want to use the ChatAPI you also need to grab the Gavin API and a suitable TensorFlow model. We will release ours publicly in the future!

We will soon make a follow-up wiki entry for the whole GeraldConfig topic since there are more options to configure if you like!

Using Docker

You can run Gerald entirely in Docker using Docker Compose. It is configurable with the following environment variables (supports .env file):

Name
Default Description
DEFAULT_PREFIX \\\\ Prefix used if server has no custom set. Escape characters need to be escaped twice.
DISCORD_TOKEN - Token used to log into Discord.
DATABASE_USERNAME postgres Username used to authenticate with PostgreSQL.
DATABASE_PASSWORD - Password used to authenticate with PostgreSQL.
DATABASE_HOST barista-database Hostname of the PostgreSQL server.
DATABASE_PORT 5432 Port on which PostgreSQL is listening.
DATABASE_DATABASE BaristaDB Name of the database to use.

Note: Docker Compose automatically consumes the .env file in its working directory.

Contributions

Do you want to contribute to the bot yourself? Great news: you can! Just join our Discord and coordinate with us.

We prefer to plan our development work ahead of implementing them so if you want to contribute to the Gerald code base we would be delighted to see you on our discord server. Alternatively you can take a look at the issues tab where we try to plan and document upcoming features and bugfixes.