Giter Club home page Giter Club logo

blackonion-bot's Introduction

Build & Deploy All Contributors codecov

BlackOnion-Bot

The official BlackOnion-Bot!

Documentation

A high-level overview of the setup can be found in SETUP.adoc. Further documentation, especially related to systems of the application, will follow in the future once the rewrite is finished.

Development

See CONTRIBUTING.md for information on how to contribute to the project.

Production

There is a pre-built docker image with the name ghcr.io/black0nion/blackonion-bot, use the tags latest and latest-beta appropriately.

Contributions

... are very welcome! If you have any questions, please use the GitHub Discussions tab. If you encounter any issues, please report them on the issue tracker and if you have an improvement, please submit a pull request. Code-related information is in CONTRIBUTING.md.

Contributors

Thanks goes to these wonderful people (emoji key):

Yusuf Arfan Ismail
Yusuf Arfan Ismail

💻
Jakob
Jakob

🚇 ⚠️ 💻

This project follows the all-contributors specification. Contributions of any kind welcome!

blackonion-bot's People

Contributors

allcontributors[bot] avatar blackonion-api avatar dependabot[bot] avatar github-actions[bot] avatar realyusufismail avatar simulatan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

blackonion-bot's Issues

Decide on capitalization of private static final fields

At the moment, there are some private static final fields that are written in lower case, and others are upper case.
We should decide on either convention and update the whole code accordingly.

Another thing that should be factored into considerations: loggers, do we call them LOGGER, logger, log, or something else?

Please provide your opinions on what we should settle on!

[BUG] command base is partially synchronous

Describe the bug
Right now, only the execution of the command itself is async.
However, loading the user settings, which is the longest part as it involves I/O, is happening in the ws thread. This could lead to discord timeouts in the future.

Expected behavior
The whole code in onCommandInteraction should be sent to the thread pool, not only the execution of the command itself.

[FEATURE REQUEST] Introduce Logger system

Is your feature request related to a problem? Please describe.
Instead of using System.out.println a logger should be used as this is a major bug and as said by Sonar lint

"If a program directly writes to the standard outputs, there is absolutely no way to comply with those requirements. That’s why defining and using a dedicated logger is highly recommended."

Describe the solution you'd like
Introduced a logger system and replace all the System.out.println

New settings base

I'll soon be working on improving the settings base which should make commands like setleavechannel obsolete. Please give suggestions on what you want to see being implemented!

Add embed with notice to welcome messages

Welcome messages could be abused by setting offensive / illegal messages, we should add an embed as a notice that clearly states that we don't have anything to do with the message sent and that we don't take any responsibility.

[FEATURE REQUEST] add poll to existing message

Is your feature request related to a problem? Please describe.
I had situations where other people made polls but without adding any reactions or related. For that, I would add a message argument to the poll command so you can use an existing message

Describe the solution you'd like
Add a message option to the poll command, makes the content redundant, thus should probably be a subcommand

Implement Chat GPT

Implement chat GPT

I am willing to add support for chatgpt and we can use for commands likes /ask or to make things faster like checking for things.

[TRACKER] More unit tests

More tests would help make the base safer.

Checklist of whats left to implement:

  • OAuth2
  • API endpoints
    • paths
    • whoami (mocking)

Please add more ideas for tests, the more that's tested the safer it is!

Remove duplicate annotation usages

Description

Basically, migrate all the @NotNull, @Nonnull, @Nullable and similar annotations to the javax version to remove duplicates.

Note

this should be tackled just before releasing the v2 (aka the slash command / recode version) so it's done once and for all

Remove music system

It is a pain to maintain and also forbidden by discord and google's ToS, and thus should be yeeted from the project.

Paste Command: use option to specify language / use modals

Right now, the language is being parsed from a codeblock.

That's leftover from the pre-slash command era, and now that multiple options exist, we should make use of that by adding an option to specify the language of the pasted code.

Additionally, since slash commands only allow one-line freeform inputs, we should consider switching to modals.
They allow a length of up to 4000 characters with the paragraph text input style which should be sufficient for most code.
See https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-styles

[FEATURE REQUEST] Introduced TIme out command

Is your feature request related to a problem? Please describe.
As seen with introduction of the time out in discord you can only set only a certain amount of time when using the timeout feature on Discord meaning if we introduced a system were give the user the ability to set a custom amount(max is 28 days)

Rework Giveaways

Giveaways are currently really poorly implemented, it would be good to possibly move them to Guilds to make them more modular and performant

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.