Giter Club home page Giter Club logo

kord-extensions's Introduction

Kord Extensions

Ko-Fi badge

Docs: Click here Discord: Click here
Weblate project translated
Latest

Translation status

Kord Extensions is an addon for the excellent Kord library. It intends to provide a framework for larger bot projects, with easy-to-use commands, rich argument parsing and event handling, wrapped up into individual extension classes.

The approach taken here is relatively different from a lot of Kotlin libraries, many of which prefer to provide a DSL for quickly prototyping or implementing a small application. Instead, Discord.py (the Discord library for Python) is a primary source of inspiration for our fairly object-oriented design, especially where it comes to its extensions (which are known as cogs in Discord.py). Despite this, we still strive to provide an idiomatic API that makes full use of Kotlin's niceties.

If you're ready to get started, please take a look at the documentation.

Patrons

Thanks to those that have donated to support the project via Ko-Fi. If you'd like to be listed for your donation here, please mention Kord Extensions and provide your GitHub username in your donation message.

  • @ToxicMushroom

Contributors

Thanks to everyone who's supported this project. The below grid shows the avatars of this repository's top contributors.

Image grid showing all contributors' avatars

The above grid is supplied by contrib.rocks.


Development Testing

If you're a contributor (current or future), you'll need to be testing your code. While we do encourage that you write unit tests, we also ask that you use the test bot as a form of integration test. If you break the test bot, then you've broken KordEx too!

You can find the test bot in the test-bot module. To run it, use Gradle to run the test-bot:run task, with the following environment variables set:

  • TEST_SERVER - your test server's ID
  • TOKEN - your testing bot's token

Optionally, you can provide the following environment variables:

  • ENVIRONMENT - Set this to spam to enable trace logging for Kord's gateway
  • LOG_LEVEL - One of ERROR, WARNING, INFO or DEBUG, which refers to the highest log level that will be posted in #test-logs (as mentioned below)
  • PLURALKIT_TESTING - Set this to any value (eg, true) to enable the PluralKit integration test module, which will respond to all message events (create, delete, update) with whether the message was proxied by PK or not.

Additionally, ensure that your test server contains a channel named test-logs that your test bot can send messages to.

The test bot is intended for testing KordEx's complex systems, such as command handling, plugin loading and extension management. If you modify any of these systems (or add new ones), it's important that you update (or add) extensions that test them.

This module also provides some convenience functions that you can use when writing tests in commands and event handlers.

kord-extensions's People

Contributors

gdude2002 avatar weblate avatar sschr15 avatar nocomment1105 avatar galarzaa90 avatar akarys42 avatar drschlaubi avatar bosukas avatar bytealex avatar lukellmann avatar nycodeghg avatar tom-the-geek avatar jamalam360 avatar dediamondpro avatar scotsguy avatar leo40git avatar dseelp avatar distractic avatar doomsdayrs avatar forbidden-a avatar pindab0ter avatar toxicmushroom avatar nicholasgrose avatar spaceclouds42 avatar dependabot[bot] avatar ks129 avatar tempest15 avatar

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.