Fast, modular, and flexible. Kommandant is a multipurpose command framework for the JVM, ready for easy integration into any project.
GitHub Wiki - How this works and how to use
Kommandant is a command framework fit for any project, whether it may be for a command-line app or for a complex chat system.
For more detailed instructions on how to use, please visit the github wiki for more information or checkout the documentation page for Kotlin and Java documentation.
You can grab Kommandant using your favourite dependency management tools! Just replace @VERSION@
with the latest release tag or use a commit hash.
PICK ONE OF:
kommandant-configurable
(relies on the core dependency) is an extension module that can easily enable/disable commands at will, as well as load or save command properties to a .json
file.
kommandant-core
comes with bare essentials to manange your commands.
Additional Modules
kommandant-async
is an extension module with an asynchronous command processing method addon that relies on Kotlin coroutines. Please keep in mind that as of Kotlin 1.10, coroutines are still experimental and subject to change.
build.gradle
allprojects {
repositories {
// ...
maven { url 'https://jitpack.io' }
}
}
For kommandant-core
dependencies {
compile 'com.github.kvnxiao.kommandant:kommandant-core:@VERSION@'
}
For kommandant-configurable
dependencies {
compile 'com.github.kvnxiao.kommandant:kommandant-configurable:@VERSION@'
}
For kommandant-async
dependencies {
compile 'com.github.kvnxiao.kommandant:kommandant-async:@VERSION@'
}
pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
For kommandant-core
<dependency>
<groupId>com.github.kvnxiao.kommandant</groupId>
<artifactId>kommandant-core</artifactId>
<version>@VERSION@</version>
</dependency>
For kommandant-configurable
<dependency>
<groupId>com.github.kvnxiao.kommandant</groupId>
<artifactId>kommandant-configurable</artifactId>
<version>@VERSION@</version>
</dependency>
For kommandant-async
<dependency>
<groupId>com.github.kvnxiao.kommandant</groupId>
<artifactId>kommandant-async</artifactId>
<version>@VERSION@</version>
</dependency>
Kommandant is written in Kotlin and provides full Java interoperability. It is recommended to use IntelliJ IDEA if you wish to edit the source code.
Have suggestions? See problems? Got new ideas or improvements? Feel free to submit an issue or pull request!