About the Framework
The Kord Extensions Discord Bot framework ("KordEx" or "the Framework") is a relatively mature framework for writing Discord bots in Kotlin. It builds upon the excellent Kord protocol and caching library, taking a bells-and-whistles approach to supporting your bots.
KordEx takes a somewhat different approach when compared to other Kotlin-based Discord bot frameworks, focusing on modular and encapsulated bot functionality rather than relying entirely on a set of lightweight DSLs. This approach means that KordEx can provide many deeply integrated features and utilities while still providing an idiomatic API that takes advantage of Kotlin's niceties.
While we prioritise the developer experience and believe KordEx is a great match for most projects, no framework can perfectly meet the needs of every potential project. For that reason, we've created a framework comparison page. Feel free to take a look if you're curious what other options you have!
Version History
KordEx has gone through multiple iterations and development cycles. We like to bump version numbers when we break an API or swap to a new development focus, reserving major version numbers for serious changes and refactors.
Version 2 is the latest version of KordEx, and it includes many changes, some of which we've detailed below.
-
The root package for all projects is no longer
com.kotlindiscord.kord.extensions. We changed it todev.kordexto match our domain name.- Core package:
dev.kordex.core - Modules package:
dev.kordex.modules - Tokenizing parser package:
dev.kordex.parser
- Core package:
-
We re-licensed KordEx under the EUPL, version 1.2, with the specific provision (EUPL articles 14 & 15) that the applicable law is the (Republic of) Irish law and the Jurisdiction is Dublin.
For more information on this licence, how we interpret it, and what it means for your project, see the licence information page.
-
Due to upcoming changes that are part of the new Maven Central platform, we no longer publish KordEx to Maven Central or OSSRH. Instead, you should add the following repository URLs:
- Releases:
https://releases-repo.kordex.dev - Snapshots:
https://snapshots-repo.kordex.dev
- Releases:
-
Version 2 includes a new data collection system, intended to guide development focus and provide interesting statistics for the community.
If you worry about (or dislike) data collection in general, you can configure this system may in multiple ways and easily disable it.
Our public statistics dashboard contains aggregated statistics from the data collected.
-
We reorganised and renamed the first-party KordEx modules to make it easier to figure out their coordinates and generally keep the Git repository cleaner. For more information, see the README in the modules folder.
-
We moved translations to their own repository, still licenced under the MPL 2.0.
-
The contribution guidelines have been rewritten and updated. We'll continue to update the guidelines when other questions arise.
-
KordEx 2 has a greater emphasis on the plugin system, which we'll work on and document more over the coming days.
-
Lots of plans are in motion around this system, so keep an eye out for announcements!
-
We updated the Unsafe Module (TODO) to support Components and Modals.
-
We now include a default about command — to help you meet the EUPL's licensing requirements and provide a standard way for your bots to provide information about themselves.
-
We've redesigned and rewritten the i18n system (TODO) with a cleaner, more type-safe, and feature-packed API.
-
We now ship a Web module (TODO) and corresponding health-check APIs (TODO).
As this is the current KordEx development cycle, we're adding new features all the time. If we forget to add something to this list, please let us know!
Version 1
The releases from KordEx's first development cycle are unsupported and likely don't work with Discord any more. However, if you need to use it for any reason, you can find it in the same Maven repository as version 2.
You may also continue to use the Gradle plugin (TODO) — just be sure to specify the KordEx version you need.
- Coordinate:
com.kotlindiscord.kord.extensions:kord-extensions - Last Version:
1.9.0-SNAPSHOT - Kord Version:
0.15.0-SNAPSHOT
We licenced version 1 under the MPL, version 2.0. The code will always be available under the v1 branch on GitHub.