Giter Club home page Giter Club logo

barista-gerald's Introduction

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.

barista-gerald's People

Contributors

arr-n-d avatar comicalcache avatar dependabot[bot] avatar elementalmp4 avatar fuchscode avatar jet132 avatar montori avatar pagwin-fedora avatar scot-survivor avatar sebastianbeattie avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

barista-gerald's Issues

Autoremove deleted emotes

Create a system to automatically remove emotes that do not exist anymore. This may need to be done with a monthly db audit or something, or checked on each Nitrolite message

Autorole Feature

Administrators of a guild should be able to configure roles that are given to new people upon joining the server.
Multiple Roles should be applicable for that feature.
Roles should be added, removed and displayed in an embed.
Max. Roles: 10

Existing members should not get the roles yet. We need to think of an efficient solution for that.

XP/Level system

Server admins will be able to enable/disable the system
Members can check their own XP and level with a command, as well as viewing a leaderboard (or maybe top 10) for the server
Admins should be able to choose role rewards when a level is reached
XP cards could be shown with an image instead of an embed or text message

AFK system

A system which any member may use to notify other people if they are AFK.
Members will use the AFK command to set an optional reason for being AFK.
If the member is mentioned, barista will notify the mentioner that this person (or people if there are multiple) is AFK.
As soon as the AFK member sends a message, they will no longer be AFK.

A command and routine should be used, command will set the status and the routine will check for mentions and messages from the AFK member.

Disabling command is not disabling the usage help

image
As you can see if you call a command with no arguments the usage of the command is still sent to the channel.

Steps to reproduce:

  • Make sure you are not admin (admins override disable)
  • Disable a command
  • Run command with no arguments (\nl)
  • Run the command with arguments (\nl aliases)
  • Observe the no arguments send the usage. (not expected)
  • Observe the \nl aliases not running. (expected)
    -Scot

Fix Pending Requests (Tunnels)

Make the anti-spam system functional. Tunnel requests are logged and checked to prevent multiple requests to the same channel.

permission command

Add a command that shows the permissions of a mentioned user.
Should also work with ids

Add pagination to NitroliteCommand search function

When searching for a popular emote, the 2000 character limit may be broken. To work around this, barista should split the list into sections and send them a section at a time. The user will use the search command like normal, then they will be prompted to say a command word to view more emotes (will probably just be "more" or "next") and then another message will be sent containing the emotes list.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.