Skip to content

Erarnitox/Droplet

Repository files navigation

Warning

This repository is in an early WIP state! Don't expect everything to work yet!

Warning

Everything in this repository is unstable and due to change in the future!

Droplet - Discord Bot


Droplet is a feature-rich Discord bot written in modern C++ to enhance your discord server's experience.

It offers a wide range of functionalities and commands to engage with your community, moderate, entertain users. With its sleek design and powerful capabilities, Droplet is the perfect companion for managing your Discord server.


Features

  • Challenge Roles: Create CTF-Style Challenges and reward solvers with roles.
  • Reaction Roles: Let Members choose their own roles by reacting to a configurable message.
  • CTF-Challenges: Create CTF-Style Challenges. Reward solvers with badges and exp.
  • Flip a Coin: Flip a coin and gamble some exp.
  • Greetings: Joining and Leaving members will be announced by the bot in a configurable channel.
  • Roll a Dice: Roll a dice and gamble some exp.
  • Server Insights: Get a quick overview of your server.
  • Manage Resources: Manage shared links using the bot, so they are kept nicely ordered and won't be lost.
  • MORE!!: Features are constantly added and get updated use the /help command to get a list of all commands that are available to you.

Installation

Clone the repository:

git clone https://github.com/Erarnitox/Droplet

Compile the source code:

cd Droplet
cmake --preset release && cmake --build release

Configure the bot:

The bot expects 2 files to be placed next to the binary:

  • bot_token.txt : holds the bot token in plan text
  • db_connection.txt : holds the connection string for your postgres database

Run the bot:

./droplet

Contributing

If you have suggestions, bug reports, or feature requests, please open an issue or submit a pull request to this repository. Before contributing, please review the Contributing Guidelines.

Crontributing Guidelines

  • Your Code must adhere to out Styleguide
  • Before creating a pull request please check off this Checklist

License

MIT License

Architecture

Architecure Document

architecture

The goal with this design was that we have a stable and solid core that offers commands a stable API they can use. Additional commands should only be reigistered with the Commands class and don't need to worry about anything else.

The bot library can be linked against the main executalbe that will only call the start function in the bot library or against the unit_test executable. The goal here was to make the code more testable by giving the unit_test executable a better insight into the bot library, than what would be possible by having the bot functionality directly in the main executable.

Current Dependency Graph

dep_graph

Documentation

Visit Documentation


Contact

For questions, feedback, or support, please contact the project maintainer:

You can also join my discord server below

Discord


Screenshots

Configurable Challenge Roles:

challenge_role

Configurable Reaction Roles:

reaction_role

Configurable CTF-Challenges:

ctf_challenge

Coin Flip Gambling:

flip

Dice Roll Gambling:

roll

Profile information:

roll


Roadmap

Github Project

Business Plan

To get an idea of where we want to go with this project take a look at the Business Plan