chore(core): deprecate prefixed accessors/mutators in CommandManager.java
All prefixed (actual) getters/setters in CommandManager have been deprecated, and non-prefixed alternatives have been introduced. I've also put some effort into improving the JavaDocs of these methods.
We now verify the following at compile time:
- That `@CommandMethod` annotated methods are non-static (error)
- That `@CommandMethod` annotated methods are public (warning)
- That the `@CommandMethod` syntax and specified `@Argument`s match
- That no optional argument precedes a required argument
This is the first part of the introduction of annotation processing to cloud. A new `@CommandContainer` annotation has been introduced, which can be placed on classes to have the annotation parser automatically construct & parse the classes when `AnnotationParser.parseContainers()` is invoked.
A future PR will introduce another processor that will scan for `@CommandMethod` annotations and verify the integrity of the annotated methods (visibility, argument annotations, etc.).
adds a system for processing strings found in annotations before they're used by AnnotationParser
implements #347
Also, because we're using "-Werror", the code won't actually build (and thus tests won't work) using JDK18. To remedy this, a bunch of @SuppressWarnings("serial")s has been added to the exceptions. We don't serialize exceptions, and they're in fact non-serializable because of their members, so this is the appropriate solution (well, the better solution would be to make them serializable, but that's outside the scope of this PR).
* build: switch to spotless
add in some other basic formatting steps that allow for easy
auto-correction
* build: lint text files as well
* chore: remove license headers from package-info files
spotless can't verify these
This also changes CommandExecutionHandler to return futures instead. The old method is still supported, and the new future-returning method will delegate to the old non-returning method.
* fabric: Update Loom to 0.7-SNAPSHOT
* Update to Gradle 7
Switch to CadixDev/licenser
The plugin we were using before does not support Gradle 7, and hasn't been updated in over a year.
* Remove `jcenter()` references
* Move to new JDA repo and bump version
* Use setup-java v2 and Adopt JDK 16 in gh actions
* build: Temporarily add Incendo repo for plugin resolution
Allows building until licenser has a new release
* Import indra plugin classes instead of string applies
* remove space
Co-authored-by: broccolai <me@broccol.ai>