Command framework & dispatcher for the JVM
Find a file
2020-09-17 14:56:07 +02:00
.github Remove CodeQL workflow 2020-09-13 14:13:43 +02:00
.mvn/wrapper Add maven wrapper 2020-09-12 19:25:55 +02:00
cloud-core Add "literal" helper method to command builder 2020-09-17 14:56:07 +02:00
cloud-jline Get rid of the command sender interface entirely 2020-09-17 13:35:16 +02:00
cloud-minecraft Add "literal" helper method to command builder 2020-09-17 14:56:07 +02:00
cloud-pipeline@b84f41bd9d Update submodule 2020-09-12 14:43:48 +02:00
icons this work? 2020-09-11 08:33:35 +02:00
.editorconfig Add limited support for completions, add .editorconfig and reformat. 2020-09-06 16:13:08 +02:00
.gitignore Initial commit 2020-08-30 20:53:00 +02:00
.gitmodules Fix pipeline submodule 2020-09-12 14:33:22 +02:00
build.sh Update build.sh 2020-09-12 19:31:36 +02:00
checkstyle.xml Add Brigadier support. 2020-09-14 22:37:06 +02:00
cloud_logo.png Add files via upload 2020-09-08 11:10:05 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2020-09-11 21:06:14 +02:00
CONTRIBUTING.md Create CONTRIBUTING.md 2020-09-11 21:05:16 +02:00
LICENSE Update README and change copyright holder in license 2020-09-11 08:56:26 +02:00
mvnw Add maven wrapper 2020-09-12 19:25:55 +02:00
mvnw.cmd Add maven wrapper 2020-09-12 19:25:55 +02:00
pom.xml Add Brigadier support. 2020-09-14 22:37:06 +02:00
README.md Move codefactor badge 2020-09-17 13:50:31 +02:00

cloud command framework license build CodeFactor

This is going to be a general-purpose Java command dispatcher & framework.
It will allow programmers to define command chains that users can use to execute pre-defined actions.

The library was named cloud because using it makes you feel like you're floating around on a cloud in heaven. It's an experience of pure bliss and joy.
This is unlike the experience of using any command framework that currently exists for the JVM, which can be compared to drowning in a pool of lava while watching your family get eaten by a pack of wolves.

Its feature set is derived from already existing command frameworks, while being less restrictive, opinionated and confusing.
CLOUD is built to be completely deterministic and your commands will behave exactly as you've programmed them to. No fluff and no mess, just a smooth cloud-like experience.

The code is based on a paper that can be found here.

goals

  • Allow for commands to be defined using builder patterns
  • Allow for commands to be defined using annotated methods
  • Allow for command pre-processing
  • Allow for command suggestion outputs

Once the core functionality is present, the framework will offer implementation modules, supporting a wide variety of platforms.

implementations

  • Minecraft:

    • Generic Brigadier module
    • Bukkit module
    • Paper module, with optional Brigadier support
    • Sponge module
    • Cloudburst
    • Bungee module
    • Velocity module
  • Create a Discord implementation (JDA)

  • Create a Java CLI implementation (JLine3)

nomenclature

  • sender: someone who is able to produce input
  • argument: an argument is something that can be parsed from a string
  • required argument: a required argument is an argument that must be provided by the sender
  • optional argument: an optional argument is an argument that can be omitted (may have a default value)
  • static argument: a string literal
  • command: a command is a chain of arguments and a handler that acts on the parsed arguments
  • command tree: structure that contains all commands and is used to parse input into arguments

develop & build

To clone the repository, use git clone --recursive https://github.com/Sauilitired/cloud.git.
To then build it, use mvn clean package. If you've already cloned the repository without
doing it recursively, use git submodule update --remote to update the submodule. This is
only needed the first time, as Maven will perform this operation when building.

There is a bash script (build.sh) that performs the submodule updating & builds the project.
Feel free to use this if you want to.

maven

cloud is available from IntellectualSites' maven repository:

<repository>  
 <id>intellectualsites-snapshots</id>  
 <url>https://mvn.intellectualsites.com/content/repositories/snapshots</url>  
</repository>  
<dependency>  
 <groupId>com.intellectualsites</groupId>  
 <artifactId></artifactId> <version></version></dependency>  

This library is licensed under the MIT license, and the code copyright
belongs to Alexander Söderberg. The implementation is based on a paper written by the copyright holder, and this paper exists
under the CC Attribution 4 license.

The Cloud icon was created by by
Thanga Vignesh P on Iconscout
and Digital rights were purchased under a premium plan.