This update focuses mainly on providing annotations from which a
CommandNode can be created. In addition, several annotation processors that perform static analysis on the annotations are also included.
Big Ol' list of changes:
- Added annotations from which commands can be derived
- Added annotation processors that perform static analysis on the annotations from which commands are derived
- Added AnnotationProcessor
- Added Element filters
- Added varargs overload to Literal.Builder#aliases(...)
- Added Literal.Builder#then(annotated, name)
- Added Alisable interface
- Added Mutable interface
- Added Commands#from(...) to create commands from annotated objects
- Fixed aliases of children not getting added in Literal and Argument
- Fixed aliases of commands not getting registered to the server's internal CommandMap in Root
- Bump Checker-qual to 2.8.1
- Bump Lingua Franca to 1.0.4
- Overhauled Literal and Argument to implement Aliasable and Mutable instead of Node
- Stricten Root#addChild(...) to throw an IllegalArgumentException if the given command does not inherit from LiteralCommandNode
- Stricten Root#register(...) and Root#wrap(...) to allow only LiteralCommandNodes instead of CommandNodes
- Removed methods & support for Argument aliasing, it doesn't make sense since an argument does not have a concrete representation
- Removed Node interface