Command executors
Developer's Note:
This section can be a little bit challenging to follow. If you only want the bare basic features (executes a command), read the section on Normal command executors - this behaves very similar to the onCommand
method in Bukkit.
The CommandAPI provides various command executors which are lambdas which execute the code you want when a command is called. With a lot of simplifications, there are two main types of command executors:
- Ones that just run the command (let's call it a normal command executor)
- Ones that return an integer as a result (let's call it a resulting command executor)
Developer's Note:
In general, you needn’t focus too much on what type of command executor to implement. If you know for certain that you're going to be using your command with command blocks, and specifically want to state whether a command returns a value, just ensure you return an integer at the end of your declared command executor. Java will infer the type (whether it's a normal command executor or a resulting command executor) automatically, so feel free to return an integer or not.
In addition to these two types of command executors, there are ways to restrict the execution of commands to certain CommandSender
subclasses. In other words, you can make commands executable by players in game only for instance. These restrictions are covered in more detail in Normal command executors.