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
Update sponge repo
Update shadow
Reorder repos
Bump various dependencies
further repo adjustments
temporarily comment out sponge7 module so we can build
Revert "temporarily comment out sponge7 module so we can build"
This reverts commit 396921ae71ace17f7e545f0fbfe2687ba3337007.
Use temporary repo for sponge
restore sponge repo
update adventure platform
* 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>
Also added some new tasks to only build/install to maven local certain platforms
`buildMinecraft`, `installMinecraft`, `buildDiscord`, `installDiscord`, `buildIRC`, `installIRC`