Skip to content
This repository has been archived by the owner on May 4, 2019. It is now read-only.

kvnxiao/kommandant

Repository files navigation

Kommandant  [origin: German] (noun): commander

CircleCI Release Apache License

Fast, modular, and flexible. Kommandant is a multipurpose command framework for the JVM, ready for easy integration into any project.

Documentation

GitHub Wiki - How this works and how to use

Overview

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.

Gradle

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@'
}

Maven

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>

Development

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!