From cfac2639ad0e61b04d6fe492306dcc49b104a409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20S=C3=B6derberg?= Date: Fri, 23 Oct 2020 10:20:45 +0200 Subject: [PATCH] :sparkles: Add errorprone and fix warnings/errors The compiler will also treat all warnings as errors from now on. --- build.gradle | 20 ++++++++++++- .../annotations/AnnotationParser.java | 17 ++++++----- .../annotations/FlagExtractor.java | 6 ++-- .../annotations/MetaFactory.java | 9 +++--- .../commandframework/CommandManager.java | 5 ++-- .../cloud/commandframework/CommandTree.java | 1 + .../LockableCommandManager.java | 2 +- .../StandardCommandSyntaxFormatter.java | 1 + .../arguments/compound/ArgumentPair.java | 1 + .../arguments/compound/ArgumentTriplet.java | 1 + .../arguments/compound/CompoundArgument.java | 2 +- .../arguments/compound/FlagArgument.java | 8 ++++-- .../parser/StandardParserRegistry.java | 26 ++++++++++------- .../preprocessor/RegexPreprocessor.java | 2 ++ .../arguments/standard/BooleanArgument.java | 3 +- .../arguments/standard/ByteArgument.java | 4 ++- .../arguments/standard/CharArgument.java | 3 +- .../arguments/standard/DoubleArgument.java | 4 ++- .../arguments/standard/EnumArgument.java | 5 ++-- .../arguments/standard/FloatArgument.java | 4 ++- .../arguments/standard/IntegerArgument.java | 5 +++- .../arguments/standard/LongArgument.java | 4 ++- .../arguments/standard/ShortArgument.java | 4 ++- .../arguments/standard/StringArgument.java | 4 ++- .../arguments/standard/UUIDArgument.java | 3 +- .../context/CommandContext.java | 7 +++-- .../exceptions/AmbiguousNodeException.java | 1 + .../exceptions/ArgumentParseException.java | 4 ++- .../exceptions/CommandParseException.java | 1 + .../InvalidCommandSenderException.java | 1 + .../exceptions/InvalidSyntaxException.java | 1 + .../exceptions/NoCommandInLeafException.java | 1 + .../exceptions/NoPermissionException.java | 1 + .../exceptions/NoSuchCommandException.java | 1 + .../parsing/NoInputProvidedException.java | 2 ++ .../parsing/NumberParseException.java | 3 +- .../exceptions/parsing/ParserException.java | 1 + .../CommandExecutionCoordinator.java | 5 ++-- .../permission/OrPermission.java | 6 +++- .../commandframework/ParserRegistryTest.java | 15 ++++++++++ .../javacord/JavacordCommand.java | 9 ++---- .../javacord/JavacordCommandManager.java | 5 ++-- .../javacord/JavacordRegistrationHandler.java | 1 - .../jda/JDA4CommandManager.java | 8 +++--- .../jda/JDACommandListener.java | 26 ++++++++--------- .../jda/JDACommandPreprocessor.java | 3 +- .../jda/parsers/ChannelArgument.java | 7 ++++- .../jda/parsers/UserArgument.java | 7 ++++- .../pircbotx/arguments/UserArgument.java | 2 ++ .../brigadier/CloudBrigadierManager.java | 13 ++++----- cloud-minecraft/cloud-bukkit/build.gradle | 2 ++ .../bukkit/BukkitBrigadierMapper.java | 4 ++- .../bukkit/BukkitCommand.java | 4 +-- .../bukkit/BukkitCommandManager.java | 10 ++++--- .../bukkit/BukkitCommandPreprocessor.java | 2 +- .../bukkit/BukkitCommandSender.java | 3 +- .../BukkitPluginRegistrationHandler.java | 4 +-- .../bukkit/CloudCommodoreManager.java | 4 +-- .../arguments/selector/EntitySelector.java | 2 +- .../bukkit/parsers/EnchantmentArgument.java | 5 ++-- .../bukkit/parsers/MaterialArgument.java | 3 +- .../bukkit/parsers/OfflinePlayerArgument.java | 9 +++--- .../bukkit/parsers/PlayerArgument.java | 5 ++-- .../bukkit/parsers/WorldArgument.java | 3 +- .../parsers/location/LocationArgument.java | 2 ++ .../MultipleEntitySelectorArgument.java | 2 +- .../MultiplePlayerSelectorArgument.java | 2 +- .../selector/SelectorParseException.java | 1 + .../SingleEntitySelectorArgument.java | 2 +- .../SinglePlayerSelectorArgument.java | 2 +- .../bungee/BungeeCommand.java | 6 ++-- .../bungee/BungeeCommandManager.java | 1 + .../bungee/BungeeCommandPreprocessor.java | 2 +- .../bungee/arguments/PlayerArgument.java | 2 ++ .../bungee/arguments/ServerArgument.java | 2 ++ .../cloudburst/CloudburstCommand.java | 6 ++-- .../cloudburst/CloudburstCommandManager.java | 1 + .../CloudburstPluginRegistrationHandler.java | 1 + .../minecraft/extras/MinecraftHelp.java | 12 ++++++++ .../minecraft/extras/Pagination.java | 4 +-- .../minecraft/extras/TextColorArgument.java | 2 ++ cloud-minecraft/cloud-paper/build.gradle | 2 ++ .../paper/PaperBrigadierListener.java | 4 +-- .../velocity/CloudInjectionModule.java | 1 + .../velocity/VelocityCommandManager.java | 1 + .../velocity/VelocityCommandPreprocessor.java | 2 +- .../VelocityPluginRegistrationHandler.java | 1 + .../velocity/arguments/PlayerArgument.java | 2 ++ .../velocity/arguments/ServerArgument.java | 2 ++ .../services/AnnotatedMethodService.java | 1 + .../services/PipelineException.java | 2 ++ .../services/ServicePipeline.java | 2 +- .../services/types/ConsumerService.java | 3 ++ .../services/types/Service.java | 1 + .../services/mock/DefaultMockService.java | 4 ++- .../services/mock/package-info.java | 28 +++++++++++++++++++ .../commandframework/tasks/TaskRecipe.java | 2 +- .../examples/bukkit/ExamplePlugin.java | 1 + .../examples/jda/CustomUser.java | 2 +- .../velocity/ExampleVelocityPlugin.java | 6 ---- scripts/dependencies.gradle | 3 ++ 101 files changed, 309 insertions(+), 146 deletions(-) create mode 100644 cloud-services/src/test/java/cloud/commandframework/services/mock/package-info.java diff --git a/build.gradle b/build.gradle index 7f697cd9..f75d0447 100644 --- a/build.gradle +++ b/build.gradle @@ -15,6 +15,7 @@ plugins { id 'java-library' id 'com.github.johnrengelman.shadow' version '6.1.0' id 'de.marcphilipp.nexus-publish' version '0.4.0' + id 'net.ltgt.errorprone' version '1.3.0' } apply from: 'scripts/dependencies.gradle' @@ -59,6 +60,7 @@ subprojects { apply plugin: 'java-library' apply plugin: 'signing' apply plugin: 'de.marcphilipp.nexus-publish' + apply plugin: 'net.ltgt.errorprone' test { useJUnitPlatform() @@ -69,6 +71,21 @@ subprojects { withJavadocJar() } + tasks.withType(JavaCompile).configureEach { + options.compilerArgs << "-Xlint:all" << "-Xlint:-processing" << "-Werror" + options.errorprone { + /* These are just annoying */ + disable( + "JdkObsolete", + "FutureReturnValueIgnored", + "ImmutableEnumChecker", + "StringSplitter", + "EqualsGetClass", + "CatchAndPrintStackTrace" + ) + } + } + repositories { mavenLocal() mavenCentral() @@ -115,6 +132,8 @@ subprojects { compileOnly "org.checkerframework:checker-qual:${vers['checker-qual']}" api "io.leangen.geantyref:geantyref:${vers['geantyref']}" testImplementation "org.junit.jupiter:junit-jupiter-engine:${vers['jupiter-engine']}" + errorprone "com.google.errorprone:error_prone_core:${vers['errorprone']}" + errorproneJavac "com.google.errorprone:javac:9+181-r4173-1" } nexusPublishing { @@ -180,4 +199,3 @@ subprojects { } } - diff --git a/cloud-annotations/src/main/java/cloud/commandframework/annotations/AnnotationParser.java b/cloud-annotations/src/main/java/cloud/commandframework/annotations/AnnotationParser.java index 4c8e6831..7acdf825 100644 --- a/cloud-annotations/src/main/java/cloud/commandframework/annotations/AnnotationParser.java +++ b/cloud-annotations/src/main/java/cloud/commandframework/annotations/AnnotationParser.java @@ -106,7 +106,7 @@ public final class AnnotationParser { )); } - protected static @Nullable A getMethodOrClassAnnotation( + static @Nullable A getMethodOrClassAnnotation( final @NonNull Method method, final @NonNull Class clazz ) { @@ -118,7 +118,7 @@ public final class AnnotationParser { return null; } - protected static boolean methodOrClassHasAnnotation( + static boolean methodOrClassHasAnnotation( final @NonNull Method method, final @NonNull Class clazz ) { @@ -163,6 +163,7 @@ public final class AnnotationParser { * @param Type of the instance * @return Collection of parsed annotations */ + @SuppressWarnings({"deprecation", "unchecked", "rawtypes"}) public @NonNull Collection<@NonNull Command> parse(final @NonNull T instance) { final Method[] methods = instance.getClass().getDeclaredMethods(); final Collection commandMethodPairs = new ArrayList<>(); @@ -184,9 +185,7 @@ public final class AnnotationParser { } final Collection> commands = this.construct(instance, commandMethodPairs); for (final Command command : commands) { - @SuppressWarnings("ALL") final CommandManager commandManager = this.manager; - //noinspection all - commandManager.command(command); + ((CommandManager) this.manager).command(command); } return commands; } @@ -203,14 +202,14 @@ public final class AnnotationParser { final LinkedHashMap tokens = this.syntaxParser.apply(commandMethod.value()); /* Determine command name */ final String commandToken = commandMethod.value().split(" ")[0].split("\\|")[0]; - @SuppressWarnings("ALL") final CommandManager manager = this.manager; + @SuppressWarnings("rawtypes") final CommandManager manager = this.manager; final SimpleCommandMeta.Builder metaBuilder = SimpleCommandMeta.builder() .with(this.metaFactory.apply(method)); if (methodOrClassHasAnnotation(method, Confirmation.class)) { metaBuilder.with(CommandConfirmationManager.CONFIRMATION_REQUIRED_META, "true"); } - @SuppressWarnings("ALL") + @SuppressWarnings("rawtypes") Command.Builder builder = manager.commandBuilder( commandToken, tokens.get(commandToken).getMinor(), @@ -353,7 +352,7 @@ public final class AnnotationParser { } final Argument argument = argumentPair.getArgument(); /* Create the argument builder */ - @SuppressWarnings("ALL") final CommandArgument.Builder argumentBuilder = CommandArgument.ofType( + @SuppressWarnings("rawtypes") final CommandArgument.Builder argumentBuilder = CommandArgument.ofType( parameter.getType(), argument.value() ); @@ -384,7 +383,7 @@ public final class AnnotationParser { final CommandArgument builtArgument = argumentBuilder.manager(this.manager).withParser(parser).build(); /* Add preprocessors */ for (final Annotation annotation : annotations) { - @SuppressWarnings("ALL") final Function preprocessorMapper = + @SuppressWarnings("rawtypes") final Function preprocessorMapper = this.preprocessorMappers.get(annotation.annotationType()); if (preprocessorMapper != null) { final BiFunction<@NonNull CommandContext, @NonNull Queue<@NonNull String>, diff --git a/cloud-annotations/src/main/java/cloud/commandframework/annotations/FlagExtractor.java b/cloud-annotations/src/main/java/cloud/commandframework/annotations/FlagExtractor.java index 2939b01c..18a369db 100644 --- a/cloud-annotations/src/main/java/cloud/commandframework/annotations/FlagExtractor.java +++ b/cloud-annotations/src/main/java/cloud/commandframework/annotations/FlagExtractor.java @@ -48,6 +48,7 @@ final class FlagExtractor implements Function<@NonNull Method, Collection<@NonNu } @Override + @SuppressWarnings({"unchecked", "rawtypes"}) public @NonNull Collection<@NonNull CommandFlag> apply(final @NonNull Method method) { final Collection> flags = new LinkedList<>(); for (final Parameter parameter : method.getParameters()) { @@ -77,15 +78,14 @@ final class FlagExtractor implements Function<@NonNull Method, Collection<@NonNu parameter.getType().getCanonicalName(), flag.value(), method.getName() )); } - @SuppressWarnings("ALL") final CommandArgument.Builder argumentBuilder = CommandArgument.ofType( + final CommandArgument.Builder argumentBuilder = CommandArgument.ofType( parameter.getType(), flag.value() ); - @SuppressWarnings("ALL") final CommandArgument argument = argumentBuilder.asRequired() + final CommandArgument argument = argumentBuilder.asRequired() .manager(this.commandManager) .withParser(parser) .build(); - // noinspection unchecked flags.add(builder.withArgument(argument).build()); } } diff --git a/cloud-annotations/src/main/java/cloud/commandframework/annotations/MetaFactory.java b/cloud-annotations/src/main/java/cloud/commandframework/annotations/MetaFactory.java index a87508c0..5c250594 100644 --- a/cloud-annotations/src/main/java/cloud/commandframework/annotations/MetaFactory.java +++ b/cloud-annotations/src/main/java/cloud/commandframework/annotations/MetaFactory.java @@ -45,16 +45,15 @@ class MetaFactory implements Function<@NonNull Method, @NonNull CommandMeta> { } @Override + @SuppressWarnings({"unchecked", "rawtypes"}) public @NonNull CommandMeta apply(final @NonNull Method method) { final ParserParameters parameters = ParserParameters.empty(); - this.annotationParser.getAnnotationMappers().forEach(((annotationClass, mapper) -> { + this.annotationParser.getAnnotationMappers().forEach((annotationClass, mapper) -> { final Annotation annotation = AnnotationParser.getMethodOrClassAnnotation(method, annotationClass); if (annotation != null) { - @SuppressWarnings("ALL") final Function function = (Function) mapper; - //noinspection unchecked - parameters.merge((ParserParameters) function.apply(annotation)); + parameters.merge((ParserParameters) ((Function) mapper).apply(annotation)); } - })); + }); return this.metaMapper.apply(parameters); } diff --git a/cloud-core/src/main/java/cloud/commandframework/CommandManager.java b/cloud-core/src/main/java/cloud/commandframework/CommandManager.java index 158a72b4..a93540aa 100644 --- a/cloud-core/src/main/java/cloud/commandframework/CommandManager.java +++ b/cloud-core/src/main/java/cloud/commandframework/CommandManager.java @@ -111,7 +111,7 @@ public abstract class CommandManager { * registered to the command manager. This may be used to forward command registration * to the platform. */ - public CommandManager( + protected CommandManager( final @NonNull Function<@NonNull CommandTree, @NonNull CommandExecutionCoordinator> commandExecutionCoordinator, final @NonNull CommandRegistrationHandler commandRegistrationHandler ) { @@ -307,6 +307,7 @@ public abstract class CommandManager { * @param captionRegistry Caption registry to use * @deprecated Use {@link #setCaptionRegistry(CaptionRegistry)} These methods are identical. */ + @Deprecated public final void registerDefaultCaptions(final @NonNull CaptionRegistry captionRegistry) { this.captionRegistry = captionRegistry; } @@ -669,13 +670,13 @@ public abstract class CommandManager { * @return Exception handler, or {@code null} * @see #registerCommandPreProcessor(CommandPreprocessor) Registering an exception handler */ + @SuppressWarnings("unchecked") public final @Nullable BiConsumer<@NonNull C, @NonNull E> getExceptionHandler(final @NonNull Class clazz) { final BiConsumer consumer = this.exceptionHandlers.get(clazz); if (consumer == null) { return null; } - //noinspection unchecked return (BiConsumer) consumer; } diff --git a/cloud-core/src/main/java/cloud/commandframework/CommandTree.java b/cloud-core/src/main/java/cloud/commandframework/CommandTree.java index f4f06395..41522384 100644 --- a/cloud-core/src/main/java/cloud/commandframework/CommandTree.java +++ b/cloud-core/src/main/java/cloud/commandframework/CommandTree.java @@ -434,6 +434,7 @@ public final class CommandTree { return getSuggestions(context, commandQueue, this.internalTree); } + @SuppressWarnings("MixedMutabilityReturnType") private @NonNull List<@NonNull String> getSuggestions( final @NonNull CommandContext commandContext, final @NonNull Queue<@NonNull String> commandQueue, diff --git a/cloud-core/src/main/java/cloud/commandframework/LockableCommandManager.java b/cloud-core/src/main/java/cloud/commandframework/LockableCommandManager.java index f60d3641..b10aa3d7 100644 --- a/cloud-core/src/main/java/cloud/commandframework/LockableCommandManager.java +++ b/cloud-core/src/main/java/cloud/commandframework/LockableCommandManager.java @@ -60,7 +60,7 @@ public abstract class LockableCommandManager extends CommandManager { * @param commandRegistrationHandler Command registration handler. This will get called every time a new command is * registered to the command manager. This may be used to forward command registration */ - public LockableCommandManager( + protected LockableCommandManager( final @NonNull Function<@NonNull CommandTree, @NonNull CommandExecutionCoordinator> commandExecutionCoordinator, final @NonNull CommandRegistrationHandler commandRegistrationHandler ) { diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/StandardCommandSyntaxFormatter.java b/cloud-core/src/main/java/cloud/commandframework/arguments/StandardCommandSyntaxFormatter.java index 332d532b..f87878b1 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/StandardCommandSyntaxFormatter.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/StandardCommandSyntaxFormatter.java @@ -49,6 +49,7 @@ public class StandardCommandSyntaxFormatter implements CommandSyntaxFormatter * {@inheritDoc} */ @Override + @SuppressWarnings("unchecked") public final @NonNull String apply( final @NonNull List<@NonNull CommandArgument> commandArguments, final CommandTree.@Nullable Node<@Nullable CommandArgument> node diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/compound/ArgumentPair.java b/cloud-core/src/main/java/cloud/commandframework/arguments/compound/ArgumentPair.java index c22b43e3..543365f6 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/compound/ArgumentPair.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/compound/ArgumentPair.java @@ -54,6 +54,7 @@ public class ArgumentPair extends CompoundArgument, C, O> * @param mapper Mapper that maps the sub-arguments to the output type * @param valueType The output type */ + @SuppressWarnings("unchecked") protected ArgumentPair( final boolean required, final @NonNull String name, diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/compound/ArgumentTriplet.java b/cloud-core/src/main/java/cloud/commandframework/arguments/compound/ArgumentTriplet.java index fbb6909a..71f7afb7 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/compound/ArgumentTriplet.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/compound/ArgumentTriplet.java @@ -55,6 +55,7 @@ public class ArgumentTriplet extends CompoundArgument extends CommandArgument suggestions( final @NonNull CommandContext commandContext, final @NonNull String input @@ -170,7 +171,6 @@ public class CompoundArgument extends CommandArgument) this.parsers[argument]).suggestions(commandContext, input); } diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/compound/FlagArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/compound/FlagArgument.java index 5b42996e..6fa5c941 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/compound/FlagArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/compound/FlagArgument.java @@ -104,6 +104,7 @@ public final class FlagArgument extends CommandArgument { } @Override + @SuppressWarnings({"unchecked", "rawtypes"}) public @NonNull ArgumentParseResult<@NonNull Object> parse( final @NonNull CommandContext<@NonNull C> commandContext, final @NonNull Queue<@NonNull String> inputQueue @@ -207,11 +208,13 @@ public final class FlagArgument extends CommandArgument { ); if (result.getFailure().isPresent()) { return ArgumentParseResult.failure(result.getFailure().get()); - } else { + } else if (result.getParsedValue().isPresent()) { final CommandFlag erasedFlag = currentFlag; final Object value = result.getParsedValue().get(); commandContext.flags().addValueFlag(erasedFlag, value); currentFlag = null; + } else { + throw new IllegalStateException("Neither result or value were present. Panicking."); } } } @@ -229,6 +232,7 @@ public final class FlagArgument extends CommandArgument { } @Override + @SuppressWarnings({"unchecked", "rawtypes"}) public @NonNull List<@NonNull String> suggestions( final @NonNull CommandContext commandContext, final @NonNull String input @@ -330,7 +334,6 @@ public final class FlagArgument extends CommandArgument { } } if (currentFlag != null && currentFlag.getCommandArgument() != null) { - // noinspection all return (List) ((BiFunction) currentFlag.getCommandArgument().getSuggestionsProvider()) .apply(commandContext, input); } @@ -346,6 +349,7 @@ public final class FlagArgument extends CommandArgument { */ public static final class FlagParseException extends ParserException { + private static final long serialVersionUID = -7725389394142868549L; private final String input; /** diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/parser/StandardParserRegistry.java b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/StandardParserRegistry.java index d1426ae3..75765a3f 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/parser/StandardParserRegistry.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/StandardParserRegistry.java @@ -59,9 +59,13 @@ import java.util.function.Function; * * @param Command sender type */ +@SuppressWarnings({"unused", "unchecked", "rawtypes"}) public final class StandardParserRegistry implements ParserRegistry { + @SuppressWarnings({"DoubleBraceInitialization"}) private static final Map, Class> PRIMITIVE_MAPPINGS = new HashMap, Class>() { + private static final long serialVersionUID = 958977651563195489L; + { put(char.class, Character.class); put(int.class, Integer.class); @@ -93,31 +97,31 @@ public final class StandardParserRegistry implements ParserRegistry { /* Register standard types */ this.registerParserSupplier(TypeToken.get(Byte.class), options -> - new ByteArgument.ByteParser( + new ByteArgument.ByteParser<>( (byte) options.get(StandardParameters.RANGE_MIN, Byte.MIN_VALUE), (byte) options.get(StandardParameters.RANGE_MAX, Byte.MAX_VALUE) )); this.registerParserSupplier(TypeToken.get(Short.class), options -> - new ShortArgument.ShortParser( + new ShortArgument.ShortParser<>( (short) options.get(StandardParameters.RANGE_MIN, Short.MIN_VALUE), (short) options.get(StandardParameters.RANGE_MAX, Short.MAX_VALUE) )); this.registerParserSupplier(TypeToken.get(Integer.class), options -> - new IntegerArgument.IntegerParser( + new IntegerArgument.IntegerParser<>( (int) options.get(StandardParameters.RANGE_MIN, Integer.MIN_VALUE), (int) options.get(StandardParameters.RANGE_MAX, Integer.MAX_VALUE) )); this.registerParserSupplier(TypeToken.get(Float.class), options -> - new FloatArgument.FloatParser( + new FloatArgument.FloatParser<>( (float) options.get(StandardParameters.RANGE_MIN, Float.MIN_VALUE), (float) options.get(StandardParameters.RANGE_MAX, Float.MAX_VALUE) )); this.registerParserSupplier(TypeToken.get(Double.class), options -> - new DoubleArgument.DoubleParser( + new DoubleArgument.DoubleParser<>( (double) options.get(StandardParameters.RANGE_MIN, Double.MIN_VALUE), (double) options.get(StandardParameters.RANGE_MAX, Double.MAX_VALUE) )); - this.registerParserSupplier(TypeToken.get(Character.class), options -> new CharArgument.CharacterParser()); + this.registerParserSupplier(TypeToken.get(Character.class), options -> new CharArgument.CharacterParser<>()); this.registerParserSupplier(TypeToken.get(String[].class), options -> new StringArrayArgument.StringArrayParser<>()); /* Make this one less awful */ this.registerParserSupplier(TypeToken.get(String.class), options -> { @@ -125,7 +129,7 @@ public final class StandardParserRegistry implements ParserRegistry { final StringArgument.StringMode stringMode = greedy ? StringArgument.StringMode.GREEDY : StringArgument.StringMode.SINGLE; - return new StringArgument.StringParser( + return new StringArgument.StringParser<>( stringMode, (context, s) -> Arrays.asList(options.get(StandardParameters.COMPLETIONS, new String[0])) ); @@ -167,6 +171,7 @@ public final class StandardParserRegistry implements ParserRegistry { } @Override + @SuppressWarnings("rawtypes") public @NonNull ParserParameters parseAnnotations( final @NonNull TypeToken parsingType, final @NonNull Collection<@NonNull ? extends Annotation> annotations @@ -186,6 +191,7 @@ public final class StandardParserRegistry implements ParserRegistry { } @Override + @SuppressWarnings("unchecked") public @NonNull Optional> createParser( final @NonNull TypeToken type, final @NonNull ParserParameters parserParameters @@ -200,9 +206,9 @@ public final class StandardParserRegistry implements ParserRegistry { if (producer == null) { /* Give enums special treatment */ if (GenericTypeReflector.isSuperType(Enum.class, actualType.getType())) { - @SuppressWarnings("all") final EnumArgument.EnumParser enumArgument - = new EnumArgument.EnumParser((Class) GenericTypeReflector.erase(actualType.getType())); - // noinspection all + @SuppressWarnings("rawtypes") + final EnumArgument.EnumParser enumArgument + = new EnumArgument.EnumParser(GenericTypeReflector.erase(actualType.getType())); return Optional.of(enumArgument); } return Optional.empty(); diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/preprocessor/RegexPreprocessor.java b/cloud-core/src/main/java/cloud/commandframework/arguments/preprocessor/RegexPreprocessor.java index a3d60251..b8fb3de0 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/preprocessor/RegexPreprocessor.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/preprocessor/RegexPreprocessor.java @@ -41,6 +41,7 @@ import java.util.regex.Pattern; * * @param Command sender type */ +@SuppressWarnings("unused") public final class RegexPreprocessor implements BiFunction<@NonNull CommandContext, @NonNull Queue<@NonNull String>, @NonNull ArgumentParseResult> { @@ -114,6 +115,7 @@ public final class RegexPreprocessor implements BiFunction<@NonNull CommandCo */ public static final class RegexValidationException extends IllegalArgumentException { + private static final long serialVersionUID = 747826566058072233L; private final String pattern; private final String failedString; private final Caption failureCaption; diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/BooleanArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/BooleanArgument.java index 86ff7f1f..414cd1e8 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/BooleanArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/BooleanArgument.java @@ -117,7 +117,7 @@ public final class BooleanArgument extends CommandArgument { private boolean liberal = false; - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Boolean.class, name); } @@ -231,6 +231,7 @@ public final class BooleanArgument extends CommandArgument { */ public static final class BooleanParseException extends ParserException { + private static final long serialVersionUID = -2688852086944850025L; private final String input; private final boolean liberal; diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ByteArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ByteArgument.java index 890ac484..f4a2661c 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ByteArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ByteArgument.java @@ -127,7 +127,7 @@ public final class ByteArgument extends CommandArgument { private byte min = Byte.MIN_VALUE; private byte max = Byte.MAX_VALUE; - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Byte.class, name); } @@ -258,6 +258,8 @@ public final class ByteArgument extends CommandArgument { */ public static final class ByteParseException extends NumberParseException { + private static final long serialVersionUID = -4724241304872989208L; + /** * Construct a new byte parse exception * diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/CharArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/CharArgument.java index 328caf89..6f33bc58 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/CharArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/CharArgument.java @@ -102,7 +102,7 @@ public final class CharArgument extends CommandArgument { public static final class Builder extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Character.class, name); } @@ -156,6 +156,7 @@ public final class CharArgument extends CommandArgument { */ public static final class CharParseException extends ParserException { + private static final long serialVersionUID = 6458851071584278854L; private final String input; /** diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/DoubleArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/DoubleArgument.java index 42969ce6..2e9b5190 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/DoubleArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/DoubleArgument.java @@ -127,7 +127,7 @@ public final class DoubleArgument extends CommandArgument { private double min = Double.NEGATIVE_INFINITY; private double max = Double.POSITIVE_INFINITY; - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Double.class, name); } @@ -245,6 +245,8 @@ public final class DoubleArgument extends CommandArgument { public static final class DoubleParseException extends NumberParseException { + private static final long serialVersionUID = 1764554911581976586L; + /** * Construct a new double parse exception * diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/EnumArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/EnumArgument.java index f9470cad..e37f9417 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/EnumArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/EnumArgument.java @@ -131,7 +131,7 @@ public class EnumArgument> extends CommandArgument { private final Class enumClass; - protected Builder(final @NonNull String name, final @NonNull Class enumClass) { + private Builder(final @NonNull String name, final @NonNull Class enumClass) { super(enumClass, name); this.enumClass = enumClass; } @@ -202,6 +202,7 @@ public class EnumArgument> extends CommandArgument { public static final class EnumParseException extends ParserException { + private static final long serialVersionUID = 3465389578951428862L; private final String input; private final Class> enumClass; @@ -228,7 +229,7 @@ public class EnumArgument> extends CommandArgument { this.enumClass = enumClass; } - @SuppressWarnings("all") + @SuppressWarnings({"unchecked", "rawtypes"}) private static @NonNull String join(final @NonNull Class clazz) { final EnumSet enumSet = EnumSet.allOf(clazz); return enumSet.stream() diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/FloatArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/FloatArgument.java index b06a9934..0b56c504 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/FloatArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/FloatArgument.java @@ -127,7 +127,7 @@ public final class FloatArgument extends CommandArgument { private float min = Float.NEGATIVE_INFINITY; private float max = Float.POSITIVE_INFINITY; - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Float.class, name); } @@ -245,6 +245,8 @@ public final class FloatArgument extends CommandArgument { public static final class FloatParseException extends NumberParseException { + private static final long serialVersionUID = -1162983846751812292L; + /** * Construct a new float parse exception * diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/IntegerArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/IntegerArgument.java index cc1b2e62..a6a48f2c 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/IntegerArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/IntegerArgument.java @@ -134,7 +134,7 @@ public final class IntegerArgument extends CommandArgument { private int min = Integer.MIN_VALUE; private int max = Integer.MAX_VALUE; - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Integer.class, name); } @@ -198,6 +198,7 @@ public final class IntegerArgument extends CommandArgument { * @param input Input * @return List of suggestions */ + @SuppressWarnings("MixedMutabilityReturnType") public static @NonNull List<@NonNull String> getSuggestions( final long min, final long max, @@ -302,6 +303,8 @@ public final class IntegerArgument extends CommandArgument { public static final class IntegerParseException extends NumberParseException { + private static final long serialVersionUID = -6933923056628373853L; + /** * Construct a new integer parse exception * diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/LongArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/LongArgument.java index 4c4e0225..7b12886a 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/LongArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/LongArgument.java @@ -127,7 +127,7 @@ public final class LongArgument extends CommandArgument { private long min = Long.MIN_VALUE; private long max = Long.MAX_VALUE; - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Long.class, name); } @@ -229,6 +229,8 @@ public final class LongArgument extends CommandArgument { public static final class LongParseException extends NumberParseException { + private static final long serialVersionUID = 4366856282301198232L; + /** * Construct a new long parse exception * diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ShortArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ShortArgument.java index ef810026..0b878c67 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ShortArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ShortArgument.java @@ -127,7 +127,7 @@ public final class ShortArgument extends CommandArgument { private short min = Short.MIN_VALUE; private short max = Short.MAX_VALUE; - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Short.class, name); } @@ -253,6 +253,8 @@ public final class ShortArgument extends CommandArgument { public static final class ShortParseException extends NumberParseException { + private static final long serialVersionUID = -478674263339091032L; + /** * Construct a new short parse exception * diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/StringArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/StringArgument.java index 43fec66e..f3c79f46 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/StringArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/StringArgument.java @@ -197,7 +197,7 @@ public final class StringArgument extends CommandArgument { private StringMode stringMode = StringMode.SINGLE; private BiFunction, String, List> suggestionsProvider = (v1, v2) -> Collections.emptyList(); - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(String.class, name); } @@ -248,6 +248,7 @@ public final class StringArgument extends CommandArgument { * @param suggestionsProvider Suggestions provider * @return Builder instance */ + @Override public @NonNull Builder withSuggestionsProvider( final @NonNull BiFunction<@NonNull CommandContext, @NonNull String, @NonNull List<@NonNull String>> suggestionsProvider @@ -410,6 +411,7 @@ public final class StringArgument extends CommandArgument { public static final class StringParseException extends ParserException { + private static final long serialVersionUID = -8903115465005472945L; private final String input; private final StringMode stringMode; diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/UUIDArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/UUIDArgument.java index 87100b5f..49cba9f0 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/standard/UUIDArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/UUIDArgument.java @@ -103,7 +103,7 @@ public final class UUIDArgument extends CommandArgument { public static final class Builder extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(UUID.class, name); } @@ -154,6 +154,7 @@ public final class UUIDArgument extends CommandArgument { public static final class UUIDParseException extends ParserException { + private static final long serialVersionUID = 6399602590976540023L; private final String input; /** diff --git a/cloud-core/src/main/java/cloud/commandframework/context/CommandContext.java b/cloud-core/src/main/java/cloud/commandframework/context/CommandContext.java index f6dcab69..ed016108 100644 --- a/cloud-core/src/main/java/cloud/commandframework/context/CommandContext.java +++ b/cloud-core/src/main/java/cloud/commandframework/context/CommandContext.java @@ -140,7 +140,7 @@ public final class CommandContext { public @NonNull Optional getOptional(final @NonNull String key) { final Object value = this.internalStorage.get(key); if (value != null) { - @SuppressWarnings("ALL") final T castedValue = (T) value; + @SuppressWarnings("unchecked") final T castedValue = (T) value; return Optional.of(castedValue); } else { return Optional.empty(); @@ -155,10 +155,11 @@ public final class CommandContext { * @param Value type * @return Value */ + @SuppressWarnings("unused") public @NonNull Optional getOptional(final @NonNull CommandArgument argument) { final Object value = this.internalStorage.get(argument.getName()); if (value != null) { - @SuppressWarnings("ALL") final T castedValue = (T) value; + @SuppressWarnings("unchecked") final T castedValue = (T) value; return Optional.of(castedValue); } else { return Optional.empty(); @@ -183,7 +184,7 @@ public final class CommandContext { * @return Argument * @throws NullPointerException If no such argument is stored */ - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked", "TypeParameterUnusedInFormals"}) public @NonNull T get(final @NonNull String key) { final Object value = this.internalStorage.get(key); if (value == null) { diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/AmbiguousNodeException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/AmbiguousNodeException.java index 99a67faa..eb1a0081 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/AmbiguousNodeException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/AmbiguousNodeException.java @@ -40,6 +40,7 @@ import java.util.List; @SuppressWarnings("unused") public final class AmbiguousNodeException extends IllegalStateException { + private static final long serialVersionUID = -200207173805584709L; private final CommandArgument parentNode; private final CommandArgument ambiguousNode; private final List> children; diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/ArgumentParseException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/ArgumentParseException.java index 34dec779..283a032f 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/ArgumentParseException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/ArgumentParseException.java @@ -30,6 +30,7 @@ import java.util.List; public class ArgumentParseException extends CommandParseException { + private static final long serialVersionUID = -4385446899439587461L; private final Throwable cause; /** @@ -53,7 +54,8 @@ public class ArgumentParseException extends CommandParseException { * * @return Cause */ - public @NonNull Throwable getCause() { + @Override + public synchronized @NonNull Throwable getCause() { return this.cause; } diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/CommandParseException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/CommandParseException.java index d1a0a16e..4a0c67c7 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/CommandParseException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/CommandParseException.java @@ -35,6 +35,7 @@ import java.util.List; @SuppressWarnings("unused") public class CommandParseException extends IllegalArgumentException { + private static final long serialVersionUID = -2415981126382517435L; private final Object commandSender; private final List> currentChain; diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidCommandSenderException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidCommandSenderException.java index 7e2c0ef1..0b93ac46 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidCommandSenderException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidCommandSenderException.java @@ -33,6 +33,7 @@ import java.util.List; */ public final class InvalidCommandSenderException extends CommandParseException { + private static final long serialVersionUID = 7372142477529875598L; private final Class requiredSender; /** diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidSyntaxException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidSyntaxException.java index 679e473b..949b128a 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidSyntaxException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidSyntaxException.java @@ -34,6 +34,7 @@ import java.util.List; @SuppressWarnings("unused") public class InvalidSyntaxException extends CommandParseException { + private static final long serialVersionUID = -4183356059293785202L; private final String correctSyntax; /** diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/NoCommandInLeafException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoCommandInLeafException.java index 2b1b6ebe..06bf9b23 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/NoCommandInLeafException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoCommandInLeafException.java @@ -34,6 +34,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; @SuppressWarnings("unused") public final class NoCommandInLeafException extends IllegalStateException { + private static final long serialVersionUID = 3373529875213310821L; private final CommandArgument commandArgument; /** diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/NoPermissionException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoPermissionException.java index dcaf8edf..ed6370df 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/NoPermissionException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoPermissionException.java @@ -37,6 +37,7 @@ import java.util.List; @SuppressWarnings("unused") public class NoPermissionException extends CommandParseException { + private static final long serialVersionUID = 7103413337750692843L; private final CommandPermission missingPermission; /** diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/NoSuchCommandException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoSuchCommandException.java index 158f014c..46140609 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/NoSuchCommandException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoSuchCommandException.java @@ -35,6 +35,7 @@ import java.util.List; @SuppressWarnings("unused") public final class NoSuchCommandException extends CommandParseException { + private static final long serialVersionUID = -7775865652882764771L; private final String suppliedCommand; /** diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NoInputProvidedException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NoInputProvidedException.java index b362b160..125b1c05 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NoInputProvidedException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NoInputProvidedException.java @@ -34,6 +34,8 @@ import org.checkerframework.checker.nullness.qual.NonNull; */ public class NoInputProvidedException extends ParserException { + private static final long serialVersionUID = 3485754951593709559L; + /** * Construct a new NoInputProvidedException * diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NumberParseException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NumberParseException.java index cf21b926..372a5b0e 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NumberParseException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NumberParseException.java @@ -30,6 +30,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; public abstract class NumberParseException extends ParserException { + private static final long serialVersionUID = 3018775374056029797L; private final String input; private final Number min; private final Number max; @@ -43,7 +44,7 @@ public abstract class NumberParseException extends ParserException { * @param parserClass Parser class * @param context Command context */ - public NumberParseException( + protected NumberParseException( final @NonNull String input, final @NonNull Number min, final @NonNull Number max, diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/ParserException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/ParserException.java index d6ec25f0..079e4ee5 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/ParserException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/ParserException.java @@ -30,6 +30,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; public class ParserException extends IllegalArgumentException { + private static final long serialVersionUID = -4409795575435072170L; private final Class argumentParser; private final CommandContext context; private final Caption errorCaption; diff --git a/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionCoordinator.java b/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionCoordinator.java index d7b2f160..7cfb7643 100644 --- a/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionCoordinator.java +++ b/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionCoordinator.java @@ -31,6 +31,7 @@ import cloud.commandframework.types.tuples.Pair; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; +import java.util.Objects; import java.util.Queue; import java.util.concurrent.CompletableFuture; import java.util.function.Function; @@ -52,7 +53,7 @@ public abstract class CommandExecutionCoordinator { * * @param commandTree Command tree */ - public CommandExecutionCoordinator(final @NonNull CommandTree commandTree) { + protected CommandExecutionCoordinator(final @NonNull CommandTree commandTree) { this.commandTree = commandTree; } @@ -113,7 +114,7 @@ public abstract class CommandExecutionCoordinator { if (pair.getSecond() != null) { completableFuture.completeExceptionally(pair.getSecond()); } else { - final Command command = pair.getFirst(); + final Command command = Objects.requireNonNull(pair.getFirst()); if (this.getCommandTree().getCommandManager().postprocessContext(commandContext, command) == State.ACCEPTED) { command.getCommandExecutionHandler().execute(commandContext); } diff --git a/cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java b/cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java index 2e3a05cc..ac600591 100644 --- a/cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java +++ b/cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java @@ -25,9 +25,11 @@ package cloud.commandframework.permission; import org.checkerframework.checker.nullness.qual.NonNull; +import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Objects; import java.util.Set; @@ -84,7 +86,9 @@ public final class OrPermission implements CommandPermission { return false; } final OrPermission that = (OrPermission) o; - return Objects.equals(getPermissions(), that.getPermissions()); + final List local = new ArrayList<>(this.getPermissions()); + final List foreign = new ArrayList<>(that.getPermissions()); + return local.equals(foreign); } @Override diff --git a/cloud-core/src/test/java/cloud/commandframework/ParserRegistryTest.java b/cloud-core/src/test/java/cloud/commandframework/ParserRegistryTest.java index bc3989ce..4637ba99 100644 --- a/cloud-core/src/test/java/cloud/commandframework/ParserRegistryTest.java +++ b/cloud-core/src/test/java/cloud/commandframework/ParserRegistryTest.java @@ -36,6 +36,7 @@ import org.junit.jupiter.api.Test; import java.lang.annotation.Annotation; import java.util.Collections; +import java.util.Objects; public class ParserRegistryTest { @@ -61,6 +62,20 @@ public class ParserRegistryTest { public String max() { return Integer.toString(RANGE_MAX); } + + @Override + public boolean equals(final Object obj) { + if (!(obj instanceof Range)) { + return false; + } + final Range range = (Range) obj; + return this.min().equals(range.min()) && this.max().equals(range.max()); + } + + @Override + public int hashCode() { + return Objects.hash(this.min(), this.max()); + } }; diff --git a/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordCommand.java b/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordCommand.java index 79db7e24..3f355fc9 100644 --- a/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordCommand.java +++ b/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordCommand.java @@ -46,19 +46,17 @@ public class JavacordCommand implements MessageCreateListener { private final JavacordCommandManager manager; private final CommandArgument command; - private final cloud.commandframework.Command cloudCommand; JavacordCommand( - final cloud.commandframework.@NonNull Command cloudCommand, final @NonNull CommandArgument command, final @NonNull JavacordCommandManager manager ) { this.command = command; this.manager = manager; - this.cloudCommand = cloudCommand; } @Override + @SuppressWarnings("unchecked") public final void onMessageCreate(final @NonNull MessageCreateEvent event) { MessageAuthor messageAuthor = event.getMessageAuthor(); @@ -85,7 +83,6 @@ public class JavacordCommand implements MessageCreateListener { messageContent = messageContent.replaceFirst(commandPrefix, ""); final String finalContent = messageContent; - //noinspection unchecked if (((StaticArgument) command).getAliases() .stream() .map(String::toLowerCase) @@ -94,7 +91,7 @@ public class JavacordCommand implements MessageCreateListener { } manager.executeCommand(sender, finalContent) - .whenComplete(((commandResult, throwable) -> { + .whenComplete((commandResult, throwable) -> { if (throwable == null) { return; } @@ -158,7 +155,7 @@ public class JavacordCommand implements MessageCreateListener { commandSender.sendErrorMessage(throwable.getMessage()); throwable.printStackTrace(); - })); + }); } } diff --git a/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordCommandManager.java b/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordCommandManager.java index 604b8964..56382724 100644 --- a/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordCommandManager.java +++ b/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordCommandManager.java @@ -57,8 +57,8 @@ public class JavacordCommandManager extends CommandManager { * @param backwardsCommandSenderMapper Function that maps the command sender type to {@link Object} * @param commandPrefixMapper Function that maps the command sender type to the command prefix * @param commandPermissionMapper Function used to check if a command sender has the permission to execute a command - * @throws Exception If the construction of the manager fails */ + @SuppressWarnings("unchecked") public JavacordCommandManager( final @NonNull DiscordApi discordApi, final @NonNull Function<@NonNull CommandTree, @@ -69,8 +69,7 @@ public class JavacordCommandManager extends CommandManager { final @NonNull Function<@NonNull C, @NonNull String> commandPrefixMapper, final @Nullable BiFunction<@NonNull C, @NonNull String, @NonNull Boolean> commandPermissionMapper - ) - throws Exception { + ) { super(commandExecutionCoordinator, new JavacordRegistrationHandler<>()); ((JavacordRegistrationHandler) this.getCommandRegistrationHandler()).initialize(this); this.discordApi = discordApi; diff --git a/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordRegistrationHandler.java b/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordRegistrationHandler.java index f12011e0..1da1f7c6 100644 --- a/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordRegistrationHandler.java +++ b/cloud-discord/cloud-javacord/src/main/java/cloud/commandframework/javacord/JavacordRegistrationHandler.java @@ -52,7 +52,6 @@ final class JavacordRegistrationHandler implements CommandRegistrationHandler return false; } @SuppressWarnings("unchecked") final JavacordCommand javacordCommand = new JavacordCommand<>( - (Command) command, (CommandArgument) commandArgument, this.javacordCommandManager ); diff --git a/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDA4CommandManager.java b/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDA4CommandManager.java index daab714c..85a2768c 100644 --- a/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDA4CommandManager.java +++ b/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDA4CommandManager.java @@ -25,20 +25,20 @@ package cloud.commandframework.jda; import cloud.commandframework.CommandTree; import cloud.commandframework.execution.CommandExecutionCoordinator; - -import java.util.function.BiFunction; -import java.util.function.Function; - import net.dv8tion.jda.api.JDA; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; +import java.util.function.BiFunction; +import java.util.function.Function; + /** * Command manager for use with JDA 4 * * @param Command sender type * @since 1.1.0 */ +@SuppressWarnings("deprecation") public class JDA4CommandManager extends JDACommandManager { /** diff --git a/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDACommandListener.java b/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDACommandListener.java index f48e2d57..0993d5f5 100644 --- a/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDACommandListener.java +++ b/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDACommandListener.java @@ -38,6 +38,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; * * @param Command sender type */ +@SuppressWarnings("deprecation") public class JDACommandListener extends ListenerAdapter { private static final String MESSAGE_INVALID_SYNTAX = "Invalid Command Syntax. Correct command syntax is: "; @@ -59,7 +60,6 @@ public class JDACommandListener extends ListenerAdapter { @Override public final void onMessageReceived(final @NonNull MessageReceivedEvent event) { final Message message = event.getMessage(); - final JDACommandSender jdaCommandSender = JDACommandSender.of(event); final C sender = this.commandManager.getCommandSenderMapper().apply(event); if (this.commandManager.getBotId() == event.getAuthor().getIdLong()) { @@ -84,13 +84,11 @@ public class JDACommandListener extends ListenerAdapter { if (throwable instanceof InvalidSyntaxException) { this.commandManager.handleException(sender, InvalidSyntaxException.class, - (InvalidSyntaxException) throwable, (c, e) -> { - this.sendMessage( - event, - MESSAGE_INVALID_SYNTAX + prefix + ((InvalidSyntaxException) throwable) - .getCorrectSyntax() - ); - } + (InvalidSyntaxException) throwable, (c, e) -> this.sendMessage( + event, + MESSAGE_INVALID_SYNTAX + prefix + ((InvalidSyntaxException) throwable) + .getCorrectSyntax() + ) ); } else if (throwable instanceof InvalidCommandSenderException) { this.commandManager.handleException(sender, @@ -112,13 +110,11 @@ public class JDACommandListener extends ListenerAdapter { ); } else if (throwable instanceof ArgumentParseException) { this.commandManager.handleException(sender, ArgumentParseException.class, - (ArgumentParseException) throwable, (c, e) -> { - this.sendMessage( - event, - "Invalid Command Argument: " + throwable.getCause() - .getMessage() - ); - } + (ArgumentParseException) throwable, (c, e) -> this.sendMessage( + event, + "Invalid Command Argument: " + throwable.getCause() + .getMessage() + ) ); } else { this.sendMessage(event, throwable.getMessage()); diff --git a/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDACommandPreprocessor.java b/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDACommandPreprocessor.java index 25ad8a4d..6824cb4b 100644 --- a/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDACommandPreprocessor.java +++ b/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/JDACommandPreprocessor.java @@ -31,8 +31,9 @@ import org.checkerframework.checker.nullness.qual.NonNull; * Command preprocessor which decorates incoming {@link cloud.commandframework.context.CommandContext} * with Bukkit specific objects * - * @param + * @param Command sender type */ +@SuppressWarnings("deprecation") final class JDACommandPreprocessor implements CommandPreprocessor { private final JDACommandManager mgr; diff --git a/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/parsers/ChannelArgument.java b/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/parsers/ChannelArgument.java index 4079f146..d4518e1c 100644 --- a/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/parsers/ChannelArgument.java +++ b/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/parsers/ChannelArgument.java @@ -110,7 +110,7 @@ public final class ChannelArgument extends CommandArgument private List modes = new ArrayList<>(); - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(MessageChannel.class, name); } @@ -228,6 +228,7 @@ public final class ChannelArgument extends CommandArgument public static class ChannelParseException extends IllegalArgumentException { + private static final long serialVersionUID = 2724288304060572202L; private final String input; /** @@ -253,6 +254,8 @@ public final class ChannelArgument extends CommandArgument public static final class TooManyChannelsFoundParseException extends ChannelParseException { + private static final long serialVersionUID = -507783063742841507L; + /** * Construct a new channel parse exception * @@ -272,6 +275,8 @@ public final class ChannelArgument extends CommandArgument public static final class ChannelNotFoundException extends ChannelParseException { + private static final long serialVersionUID = -8299458048947528494L; + /** * Construct a new channel parse exception * diff --git a/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/parsers/UserArgument.java b/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/parsers/UserArgument.java index f0984170..09f768ab 100644 --- a/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/parsers/UserArgument.java +++ b/cloud-discord/cloud-jda/src/main/java/cloud/commandframework/jda/parsers/UserArgument.java @@ -111,7 +111,7 @@ public final class UserArgument extends CommandArgument { private Set modes = new HashSet<>(); - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(User.class, name); } @@ -244,6 +244,7 @@ public final class UserArgument extends CommandArgument { public static class UserParseException extends IllegalArgumentException { + private static final long serialVersionUID = -6728909884195850077L; private final String input; /** @@ -269,6 +270,8 @@ public final class UserArgument extends CommandArgument { public static final class TooManyUsersFoundParseException extends UserParseException { + private static final long serialVersionUID = 7222089412615886672L; + /** * Construct a new user parse exception * @@ -288,6 +291,8 @@ public final class UserArgument extends CommandArgument { public static final class UserNotFoundParseException extends UserParseException { + private static final long serialVersionUID = 3689949065073643826L; + /** * Construct a new user parse exception * diff --git a/cloud-irc/cloud-pircbotx/src/main/java/cloud/commandframework/pircbotx/arguments/UserArgument.java b/cloud-irc/cloud-pircbotx/src/main/java/cloud/commandframework/pircbotx/arguments/UserArgument.java index 3efcbd15..8cae8c68 100644 --- a/cloud-irc/cloud-pircbotx/src/main/java/cloud/commandframework/pircbotx/arguments/UserArgument.java +++ b/cloud-irc/cloud-pircbotx/src/main/java/cloud/commandframework/pircbotx/arguments/UserArgument.java @@ -159,6 +159,8 @@ public final class UserArgument extends CommandArgument { public static final class UserParseException extends ParserException { + private static final long serialVersionUID = -1758590697299611905L; + private UserParseException( final @NonNull CommandContext context, final @NonNull String input diff --git a/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java b/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java index 248ca10c..a1d7417a 100644 --- a/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java +++ b/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java @@ -80,6 +80,7 @@ import java.util.function.Supplier; * @param Command sender type * @param Brigadier sender type */ +@SuppressWarnings({"unchecked", "rawtypes"}) public final class CloudBrigadierManager { private final Map, Pair, ? extends ArgumentType>, Boolean>> mappers; @@ -232,7 +233,7 @@ public final class CloudBrigadierManager { final ArgumentParser commandArgument = (ArgumentParser) argument; final Pair pair = this.mappers.get(GenericTypeReflector.erase(argumentType.getType())); if (pair == null || pair.getFirst() == null) { - return this.createDefaultMapper(valueType, commandArgument); + return this.createDefaultMapper(valueType); } return Pair.of( (ArgumentType) ((Function) pair.getFirst()).apply(commandArgument), @@ -241,8 +242,7 @@ public final class CloudBrigadierManager { } private > @NonNull Pair<@NonNull ArgumentType, @NonNull Boolean> createDefaultMapper( - final @NonNull TypeToken clazz, - final @NonNull ArgumentParser argument + final @NonNull TypeToken clazz ) { final Supplier> argumentTypeSupplier = this.defaultArgumentTypeSuppliers .get(GenericTypeReflector.erase(clazz.getType())); @@ -278,7 +278,7 @@ public final class CloudBrigadierManager { ) { final CommandTree.Node> node = this.commandManager .getCommandTree().getNamedNode(cloudCommand.getArguments().get(0).getName()); - final SuggestionProvider provider = (context, builder) -> this.buildSuggestions(node.getValue(), context, builder); + final SuggestionProvider provider = (context, builder) -> this.buildSuggestions(node.getValue(), builder); final LiteralArgumentBuilder literalArgumentBuilder = LiteralArgumentBuilder .literal(label) .requires(sender -> permissionChecker.test(sender, (CommandPermission) node.getNodeMeta() @@ -375,7 +375,7 @@ public final class CloudBrigadierManager { )); argumentBuilders[i] = fragmentBuilder; - if (forceExecutor || (i == parsers.length - 1) && (root.isLeaf() || !root.getValue().isRequired())) { + if (forceExecutor || ((i == parsers.length - 1) && (root.isLeaf() || !root.getValue().isRequired()))) { fragmentBuilder.executes(executor); } @@ -410,7 +410,7 @@ public final class CloudBrigadierManager { final SuggestionProvider provider = pair.getSecond() ? null : (context, builder) -> this.buildSuggestions(root.getValue(), - context, builder + builder ); argumentBuilder = RequiredArgumentBuilder .argument(root.getValue().getName(), (ArgumentType) pair.getFirst()) @@ -438,7 +438,6 @@ public final class CloudBrigadierManager { private @NonNull CompletableFuture buildSuggestions( final @NonNull CommandArgument argument, - final com.mojang.brigadier.context.@NonNull CommandContext s, final @NonNull SuggestionsBuilder builder ) { final CommandContext commandContext = this.dummyContextProvider.get(); diff --git a/cloud-minecraft/cloud-bukkit/build.gradle b/cloud-minecraft/cloud-bukkit/build.gradle index 3d6acd66..341bbcec 100644 --- a/cloud-minecraft/cloud-bukkit/build.gradle +++ b/cloud-minecraft/cloud-bukkit/build.gradle @@ -4,4 +4,6 @@ dependencies { api project(':cloud-tasks') compileOnly "org.bukkit:bukkit:${vers['bukkit']}" compileOnly "me.lucko:commodore:${vers['commodore']}" + compileOnly "org.jetbrains:annotations:${vers['jb-annotations']}" + compileOnly "com.google.guava:guava:${vers['guava']}" } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitBrigadierMapper.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitBrigadierMapper.java index 7b8d8796..ed15eed5 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitBrigadierMapper.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitBrigadierMapper.java @@ -45,6 +45,7 @@ import java.util.logging.Level; * * @param Command sender type */ +@SuppressWarnings({"unchecked", "rawtypes"}) public final class BukkitBrigadierMapper { private static final int UUID_ARGUMENT_VERSION = 16; @@ -115,6 +116,7 @@ public final class BukkitBrigadierMapper { }; } + @SuppressWarnings("UnnecessaryLambda") private Supplier> getArgumentVec3() { return () -> { try { @@ -152,7 +154,7 @@ public final class BukkitBrigadierMapper { try { this.brigadierManager.registerDefaultArgumentTypeSupplier(type, () -> { try { - return (ArgumentType) constructor.newInstance(); + return constructor.newInstance(); } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommand.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommand.java index efa9a414..737d4e75 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommand.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommand.java @@ -88,7 +88,7 @@ final class BukkitCommand extends org.bukkit.command.Command implements Plugi sender, builder.toString() ) - .whenComplete(((commandResult, throwable) -> { + .whenComplete((commandResult, throwable) -> { if (throwable != null) { if (throwable instanceof CompletionException) { throwable = throwable.getCause(); @@ -138,7 +138,7 @@ final class BukkitCommand extends org.bukkit.command.Command implements Plugi throwable.printStackTrace(); } } - })); + }); return true; } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandManager.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandManager.java index 464e68b8..f73961ff 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandManager.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandManager.java @@ -79,7 +79,6 @@ public class BukkitCommandManager extends CommandManager { private final Function commandSenderMapper; private final Function backwardsCommandSenderMapper; - private final BukkitSynchronizer bukkitSynchronizer; private final TaskFactory taskFactory; private boolean splitAliases = false; @@ -109,6 +108,7 @@ public class BukkitCommandManager extends CommandManager { * @param backwardsCommandSenderMapper Function that maps the command sender type to {@link CommandSender} * @throws Exception If the construction of the manager fails */ + @SuppressWarnings("unchecked") public BukkitCommandManager( final @NonNull Plugin owningPlugin, final @NonNull Function<@NonNull CommandTree, @@ -123,8 +123,8 @@ public class BukkitCommandManager extends CommandManager { this.commandSenderMapper = commandSenderMapper; this.backwardsCommandSenderMapper = backwardsCommandSenderMapper; - this.bukkitSynchronizer = new BukkitSynchronizer(owningPlugin); - this.taskFactory = new TaskFactory(this.bukkitSynchronizer); + final BukkitSynchronizer bukkitSynchronizer = new BukkitSynchronizer(owningPlugin); + this.taskFactory = new TaskFactory(bukkitSynchronizer); /* Try to determine the Minecraft version */ int version = -1; @@ -148,6 +148,7 @@ public class BukkitCommandManager extends CommandManager { Class.forName("com.destroystokyo.paper.PaperConfig"); paper = true; } catch (final Exception ignored) { + // This is fine } this.paper = paper; @@ -183,7 +184,7 @@ public class BukkitCommandManager extends CommandManager { this.owningPlugin ); - this.registerDefaultCaptions(new BukkitCaptionRegistryFactory().create()); + this.setCaptionRegistry(new BukkitCaptionRegistryFactory().create()); } /** @@ -363,6 +364,7 @@ public class BukkitCommandManager extends CommandManager { public static final class BrigadierFailureException extends IllegalStateException { + private static final long serialVersionUID = 7816660840063155703L; private final BrigadierFailureReason reason; /** diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandPreprocessor.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandPreprocessor.java index f96b60de..a442b3ed 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandPreprocessor.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandPreprocessor.java @@ -31,7 +31,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; * Command preprocessor which decorates incoming {@link cloud.commandframework.context.CommandContext} * with Bukkit specific objects * - * @param + * @param Command sender type */ final class BukkitCommandPreprocessor implements CommandPreprocessor { diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandSender.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandSender.java index fd4c35e8..e0757e18 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandSender.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitCommandSender.java @@ -29,7 +29,6 @@ import org.checkerframework.checker.nullness.qual.NonNull; /** * Command sender that proxies {@link org.bukkit.command.CommandSender} - * {@inheritDoc} */ public abstract class BukkitCommandSender { @@ -40,7 +39,7 @@ public abstract class BukkitCommandSender { * * @param internalSender Bukkit command sender */ - public BukkitCommandSender(final org.bukkit.command.@NonNull CommandSender internalSender) { + protected BukkitCommandSender(final org.bukkit.command.@NonNull CommandSender internalSender) { this.internalSender = internalSender; } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitPluginRegistrationHandler.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitPluginRegistrationHandler.java index 3adf16a5..212feb67 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitPluginRegistrationHandler.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/BukkitPluginRegistrationHandler.java @@ -61,7 +61,7 @@ public class BukkitPluginRegistrationHandler implements CommandRegistrationHa this.commandMap = (CommandMap) getCommandMap.invoke(Bukkit.getServer()); final Field knownCommands = SimpleCommandMap.class.getDeclaredField("knownCommands"); knownCommands.setAccessible(true); - @SuppressWarnings("ALL") final Map bukkitCommands = + @SuppressWarnings("unchecked") final Map bukkitCommands = (Map) knownCommands.get(commandMap); this.bukkitCommands = bukkitCommands; this.bukkitCommandManager = bukkitCommandManager; @@ -83,7 +83,7 @@ public class BukkitPluginRegistrationHandler implements CommandRegistrationHa @SuppressWarnings("unchecked") final BukkitCommand bukkitCommand = new BukkitCommand<>( label, - (this.bukkitCommandManager.getSplitAliases() ? Collections.emptyList() : aliases), + (this.bukkitCommandManager.getSplitAliases() ? Collections.emptyList() : aliases), (Command) command, (CommandArgument) commandArgument, this.bukkitCommandManager diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/CloudCommodoreManager.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/CloudCommodoreManager.java index 692e2888..6203e4c8 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/CloudCommodoreManager.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/CloudCommodoreManager.java @@ -38,7 +38,7 @@ import org.checkerframework.checker.nullness.qual.Nullable; import java.util.Collections; -@SuppressWarnings("ALL") +@SuppressWarnings({"unchecked", "rawtypes"}) class CloudCommodoreManager extends BukkitPluginRegistrationHandler { private final BukkitCommandManager commandManager; @@ -77,7 +77,7 @@ class CloudCommodoreManager extends BukkitPluginRegistrationHandler { ) { final com.mojang.brigadier.Command cmd = o -> 1; final LiteralCommandNode literalCommandNode = this.brigadierManager - .createLiteralCommandNode(label, command, (o, p) -> { + .createLiteralCommandNode(label, command, (o, p) -> { final CommandSender sender = this.commodore.getBukkitSender(o); return this.commandManager.hasPermission( this.commandManager.getCommandSenderMapper().apply(sender), diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/EntitySelector.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/EntitySelector.java index 372f4542..817bf800 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/EntitySelector.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/EntitySelector.java @@ -43,7 +43,7 @@ public abstract class EntitySelector { * @param selector The input string used to create this selector * @param entities The List of Bukkit {@link Entity entities} to construct the {@link EntitySelector} from */ - public EntitySelector( + protected EntitySelector( final @NonNull String selector, final @NonNull List<@NonNull Entity> entities ) { diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/EnchantmentArgument.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/EnchantmentArgument.java index 13fd8535..39ee2f27 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/EnchantmentArgument.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/EnchantmentArgument.java @@ -108,7 +108,7 @@ public class EnchantmentArgument extends CommandArgument { public static final class Builder extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Enchantment.class, name); } @@ -127,6 +127,7 @@ public class EnchantmentArgument extends CommandArgument { public static final class EnchantmentParser implements ArgumentParser { @Override + @SuppressWarnings("deprecation") public @NonNull ArgumentParseResult parse( final @NonNull CommandContext commandContext, final @NonNull Queue<@NonNull String> inputQueue @@ -142,7 +143,6 @@ public class EnchantmentArgument extends CommandArgument { final NamespacedKey key; if (input.contains(":")) { final String[] splitInput = input.split(":"); - //noinspection deprecation key = new NamespacedKey(splitInput[0], splitInput[1]); } else { key = NamespacedKey.minecraft(input); @@ -177,6 +177,7 @@ public class EnchantmentArgument extends CommandArgument { public static final class EnchantmentParseException extends ParserException { + private static final long serialVersionUID = 1415174766296065151L; private final String input; /** diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/MaterialArgument.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/MaterialArgument.java index 8d8ab2c2..3409e720 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/MaterialArgument.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/MaterialArgument.java @@ -107,7 +107,7 @@ public class MaterialArgument extends CommandArgument { public static final class Builder extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Material.class, name); } @@ -164,6 +164,7 @@ public class MaterialArgument extends CommandArgument { public static final class MaterialParseException extends ParserException { + private static final long serialVersionUID = 1615554107385965610L; private final String input; /** diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/OfflinePlayerArgument.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/OfflinePlayerArgument.java index 82136070..a1d14a5b 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/OfflinePlayerArgument.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/OfflinePlayerArgument.java @@ -114,7 +114,7 @@ public final class OfflinePlayerArgument extends CommandArgument extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(OfflinePlayer.class, name); } @@ -136,6 +136,7 @@ public final class OfflinePlayerArgument extends CommandArgument implements ArgumentParser { @Override + @SuppressWarnings("deprecation") public @NonNull ArgumentParseResult parse( final @NonNull CommandContext commandContext, final @NonNull Queue inputQueue @@ -149,10 +150,9 @@ public final class OfflinePlayerArgument extends CommandArgument extends CommandArgument extends CommandArgument { public static final class Builder extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(Player.class, name); } @@ -130,6 +130,7 @@ public final class PlayerArgument extends CommandArgument { public static final class PlayerParser implements ArgumentParser { @Override + @SuppressWarnings("deprecation") public @NonNull ArgumentParseResult parse( final @NonNull CommandContext commandContext, final @NonNull Queue<@NonNull String> inputQueue @@ -143,7 +144,6 @@ public final class PlayerArgument extends CommandArgument { } inputQueue.remove(); - //noinspection deprecation Player player = Bukkit.getPlayer(input); if (player == null) { @@ -175,6 +175,7 @@ public final class PlayerArgument extends CommandArgument { */ public static final class PlayerParseException extends ParserException { + private static final long serialVersionUID = 927476591631527552L; private final String input; /** diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/WorldArgument.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/WorldArgument.java index 32ae489d..f5b0b5cd 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/WorldArgument.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/WorldArgument.java @@ -108,7 +108,7 @@ public class WorldArgument extends CommandArgument { public static final class Builder extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(World.class, name); } @@ -154,6 +154,7 @@ public class WorldArgument extends CommandArgument { public static final class WorldParseException extends ParserException { + private static final long serialVersionUID = 561648144491587450L; private final String input; /** diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/location/LocationArgument.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/location/LocationArgument.java index 226d4f9a..574f8840 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/location/LocationArgument.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/location/LocationArgument.java @@ -289,6 +289,8 @@ public final class LocationArgument extends CommandArgument { private static class LocationParseException extends ParserException { + private static final long serialVersionUID = -3261835227265878218L; + protected LocationParseException( final @NonNull CommandContext context, final @NonNull String input diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/MultipleEntitySelectorArgument.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/MultipleEntitySelectorArgument.java index a046ad30..331c14ab 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/MultipleEntitySelectorArgument.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/MultipleEntitySelectorArgument.java @@ -105,7 +105,7 @@ public final class MultipleEntitySelectorArgument extends CommandArgument extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(MultipleEntitySelector.class, name); } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/MultiplePlayerSelectorArgument.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/MultiplePlayerSelectorArgument.java index 4935fd5b..0d9da7ff 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/MultiplePlayerSelectorArgument.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/MultiplePlayerSelectorArgument.java @@ -109,7 +109,7 @@ public final class MultiplePlayerSelectorArgument extends CommandArgument extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(MultiplePlayerSelector.class, name); } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SelectorParseException.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SelectorParseException.java index 9641e038..7f6878e4 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SelectorParseException.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SelectorParseException.java @@ -35,6 +35,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; */ public final class SelectorParseException extends ParserException { + private static final long serialVersionUID = 1900826717897819065L; private final String input; /** diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SingleEntitySelectorArgument.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SingleEntitySelectorArgument.java index 95f06d3f..e9b04291 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SingleEntitySelectorArgument.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SingleEntitySelectorArgument.java @@ -103,7 +103,7 @@ public final class SingleEntitySelectorArgument extends CommandArgument extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(SingleEntitySelector.class, name); } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SinglePlayerSelectorArgument.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SinglePlayerSelectorArgument.java index 3e6cfc8d..47f0a6b6 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SinglePlayerSelectorArgument.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SinglePlayerSelectorArgument.java @@ -107,7 +107,7 @@ public final class SinglePlayerSelectorArgument extends CommandArgument extends CommandArgument.Builder { - protected Builder(final @NonNull String name) { + private Builder(final @NonNull String name) { super(SinglePlayerSelector.class, name); } diff --git a/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommand.java b/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommand.java index 822ac226..2ec0c046 100644 --- a/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommand.java +++ b/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommand.java @@ -48,7 +48,6 @@ public final class BungeeCommand extends Command implements TabExecutor { private final BungeeCommandManager manager; private final CommandArgument command; - private final cloud.commandframework.Command cloudCommand; @SuppressWarnings("unchecked") BungeeCommand( @@ -63,7 +62,6 @@ public final class BungeeCommand extends Command implements TabExecutor { ); this.command = command; this.manager = manager; - this.cloudCommand = cloudCommand; } @Override @@ -78,7 +76,7 @@ public final class BungeeCommand extends Command implements TabExecutor { sender, builder.toString() ) - .whenComplete(((commandResult, throwable) -> { + .whenComplete((commandResult, throwable) -> { if (throwable != null) { if (throwable instanceof CompletionException) { throwable = throwable.getCause(); @@ -154,7 +152,7 @@ public final class BungeeCommand extends Command implements TabExecutor { throwable.printStackTrace(); } } - })); + }); } @Override diff --git a/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommandManager.java b/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommandManager.java index a7ae96fd..db5dd153 100644 --- a/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommandManager.java +++ b/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommandManager.java @@ -63,6 +63,7 @@ public class BungeeCommandManager extends CommandManager { * @param commandSenderMapper Function that maps {@link CommandSender} to the command sender type * @param backwardsCommandSenderMapper Function that maps the command sender type to {@link CommandSender} */ + @SuppressWarnings("unchecked") public BungeeCommandManager( final @NonNull Plugin owningPlugin, final @NonNull Function<@NonNull CommandTree, diff --git a/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommandPreprocessor.java b/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommandPreprocessor.java index 5c88f7fb..c80c3fbe 100644 --- a/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommandPreprocessor.java +++ b/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/BungeeCommandPreprocessor.java @@ -31,7 +31,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; * Command preprocessor which decorates incoming {@link cloud.commandframework.context.CommandContext} * with Bungee specific objects * - * @param + * @param Command sender type * @since 1.1.0 */ final class BungeeCommandPreprocessor implements CommandPreprocessor { diff --git a/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/arguments/PlayerArgument.java b/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/arguments/PlayerArgument.java index 962d22d6..d1328bee 100644 --- a/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/arguments/PlayerArgument.java +++ b/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/arguments/PlayerArgument.java @@ -184,6 +184,8 @@ public final class PlayerArgument extends CommandArgument { public static final class PlayerParseException extends ParserException { + private static final long serialVersionUID = -2685136673577959929L; + private PlayerParseException( final @NonNull String input, final @NonNull CommandContext context diff --git a/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/arguments/ServerArgument.java b/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/arguments/ServerArgument.java index ee95ca18..eaa6006c 100644 --- a/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/arguments/ServerArgument.java +++ b/cloud-minecraft/cloud-bungee/src/main/java/cloud/commandframework/bungee/arguments/ServerArgument.java @@ -172,6 +172,8 @@ public final class ServerArgument extends CommandArgument { public static final class ServerParseException extends ParserException { + private static final long serialVersionUID = -3825941611365494659L; + private ServerParseException( final @NonNull String input, final @NonNull CommandContext context diff --git a/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstCommand.java b/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstCommand.java index dfe462b8..bb2b7be1 100644 --- a/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstCommand.java +++ b/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstCommand.java @@ -48,7 +48,6 @@ final class CloudburstCommand extends PluginCommand { private final CommandArgument command; private final CloudburstCommandManager manager; - private final Command cloudCommand; CloudburstCommand( final @NonNull String label, @@ -64,7 +63,6 @@ final class CloudburstCommand extends PluginCommand { .build()); this.command = command; this.manager = manager; - this.cloudCommand = cloudCommand; } @Override @@ -83,7 +81,7 @@ final class CloudburstCommand extends PluginCommand { sender, builder.toString() ) - .whenComplete(((commandResult, throwable) -> { + .whenComplete((commandResult, throwable) -> { if (throwable != null) { if (throwable instanceof CompletionException) { throwable = throwable.getCause(); @@ -131,7 +129,7 @@ final class CloudburstCommand extends PluginCommand { throwable.printStackTrace(); } } - })); + }); return true; } diff --git a/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstCommandManager.java b/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstCommandManager.java index 19e753b7..ee5d071b 100644 --- a/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstCommandManager.java +++ b/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstCommandManager.java @@ -54,6 +54,7 @@ public class CloudburstCommandManager extends CommandManager { * @param commandSenderMapper Function that maps {@link CommandSender} to the command sender type * @param backwardsCommandSenderMapper Function that maps the command sender type to {@link CommandSender} */ + @SuppressWarnings("unchecked") public CloudburstCommandManager( final @NonNull Plugin owningPlugin, final @NonNull Function<@NonNull CommandTree, diff --git a/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstPluginRegistrationHandler.java b/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstPluginRegistrationHandler.java index 30ff8e46..9e5aa24a 100644 --- a/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstPluginRegistrationHandler.java +++ b/cloud-minecraft/cloud-cloudburst/src/main/java/cloud/commandframework/cloudburst/CloudburstPluginRegistrationHandler.java @@ -48,6 +48,7 @@ class CloudburstPluginRegistrationHandler implements CommandRegistrationHandl } @Override + @SuppressWarnings("unchecked") public final boolean registerCommand(final @NonNull Command command) { /* We only care about the root command argument */ final CommandArgument commandArgument = command.getArguments().get(0); diff --git a/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/MinecraftHelp.java b/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/MinecraftHelp.java index 209d13af..bc3f45e2 100644 --- a/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/MinecraftHelp.java +++ b/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/MinecraftHelp.java @@ -588,6 +588,8 @@ public final class MinecraftHelp { } /** + * Get the configured primary color + * * @return The primary color for the color scheme */ public @NonNull TextColor primary() { @@ -595,6 +597,8 @@ public final class MinecraftHelp { } /** + * Get the configured highlight color + * * @return The primary color used to highlight commands and queries */ public @NonNull TextColor highlight() { @@ -602,6 +606,8 @@ public final class MinecraftHelp { } /** + * Get the configured alternate highlight color + * * @return The secondary color used to highlight commands and queries */ public @NonNull TextColor alternateHighlight() { @@ -609,6 +615,8 @@ public final class MinecraftHelp { } /** + * Get the configured text color + * * @return The color used for description text */ public @NonNull TextColor text() { @@ -616,6 +624,8 @@ public final class MinecraftHelp { } /** + * Get the configured accent color + * * @return The color used for accents and symbols */ public @NonNull TextColor accent() { @@ -623,6 +633,8 @@ public final class MinecraftHelp { } /** + * Create a new {@link HelpColors} instance + * * @param primary The primary color for the color scheme * @param highlight The primary color used to highlight commands and queries * @param alternateHighlight The secondary color used to highlight commands and queries diff --git a/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/Pagination.java b/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/Pagination.java index a6fa0868..019b70cd 100644 --- a/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/Pagination.java +++ b/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/Pagination.java @@ -50,7 +50,7 @@ final class Pagination { this.outOfRangeRenderer = outOfRangeRenderer; } - public @NonNull List render( + @NonNull List render( final @NonNull List content, final int page, final int itemsPerPage @@ -73,7 +73,7 @@ final class Pagination { renderedContent.add(this.footerRenderer.apply(page, pages)); - return renderedContent; + return Collections.unmodifiableList(renderedContent); } } diff --git a/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/TextColorArgument.java b/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/TextColorArgument.java index 009a57b1..a70b4b56 100644 --- a/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/TextColorArgument.java +++ b/cloud-minecraft/cloud-minecraft-extras/src/main/java/cloud/commandframework/minecraft/extras/TextColorArgument.java @@ -218,6 +218,8 @@ public final class TextColorArgument extends CommandArgument { private static final class TextColorParseException extends ParserException { + private static final long serialVersionUID = -6236625328843879518L; + private TextColorParseException( final @NonNull CommandContext commandContext, final @NonNull String input diff --git a/cloud-minecraft/cloud-paper/build.gradle b/cloud-minecraft/cloud-paper/build.gradle index 9a12b626..fab1363c 100644 --- a/cloud-minecraft/cloud-paper/build.gradle +++ b/cloud-minecraft/cloud-paper/build.gradle @@ -2,4 +2,6 @@ dependencies { api project(':cloud-bukkit') compileOnly "com.destroystokyo.paper:paper-api:${vers['paper-api']}" compileOnly "com.destroystokyo.paper:paper-mojangapi:${vers['paper-api']}" + compileOnly "org.jetbrains:annotations:${vers['jb-annotations']}" + compileOnly "com.google.guava:guava:${vers['guava']}" } diff --git a/cloud-minecraft/cloud-paper/src/main/java/cloud/commandframework/paper/PaperBrigadierListener.java b/cloud-minecraft/cloud-paper/src/main/java/cloud/commandframework/paper/PaperBrigadierListener.java index 3f3ea784..a4a8cd9f 100644 --- a/cloud-minecraft/cloud-paper/src/main/java/cloud/commandframework/paper/PaperBrigadierListener.java +++ b/cloud-minecraft/cloud-paper/src/main/java/cloud/commandframework/paper/PaperBrigadierListener.java @@ -30,7 +30,6 @@ import cloud.commandframework.bukkit.BukkitBrigadierMapper; import cloud.commandframework.context.CommandContext; import cloud.commandframework.permission.CommandPermission; import com.destroystokyo.paper.brigadier.BukkitBrigadierCommandSource; -import com.destroystokyo.paper.event.brigadier.CommandRegisteredEvent; import org.bukkit.Bukkit; import org.bukkit.command.PluginIdentifiableCommand; import org.bukkit.event.EventHandler; @@ -60,7 +59,8 @@ class PaperBrigadierListener implements Listener { @EventHandler @SuppressWarnings("deprecation") - public void onCommandRegister(final @NonNull CommandRegisteredEvent event) { + public void onCommandRegister(final com.destroystokyo.paper.event.brigadier + .@NonNull CommandRegisteredEvent event) { if (!(event.getCommand() instanceof PluginIdentifiableCommand)) { return; } else if (!((PluginIdentifiableCommand) event.getCommand()) diff --git a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/CloudInjectionModule.java b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/CloudInjectionModule.java index e2597ef0..2164dbc8 100644 --- a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/CloudInjectionModule.java +++ b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/CloudInjectionModule.java @@ -68,6 +68,7 @@ public final class CloudInjectionModule extends AbstractModule { } @Override + @SuppressWarnings({"unchecked", "rawtypes"}) protected void configure() { final Type commandTreeType = Types.newParameterizedType(CommandTree.class, this.commandSenderType); final Type commandExecutionCoordinatorType = Types.newParameterizedType(CommandExecutionCoordinator.class, diff --git a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityCommandManager.java b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityCommandManager.java index 994bcd58..7972bcf2 100644 --- a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityCommandManager.java +++ b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityCommandManager.java @@ -77,6 +77,7 @@ public class VelocityCommandManager extends CommandManager { * @param backwardsCommandSenderMapper Function that maps the command sender type to {@link CommandSource} */ @Inject + @SuppressWarnings("unchecked") public VelocityCommandManager( final @NonNull ProxyServer proxyServer, final @NonNull Function<@NonNull CommandTree, @NonNull CommandExecutionCoordinator> commandExecutionCoordinator, diff --git a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityCommandPreprocessor.java b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityCommandPreprocessor.java index 0dfa4f40..9ebc9f30 100644 --- a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityCommandPreprocessor.java +++ b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityCommandPreprocessor.java @@ -31,7 +31,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; * Command preprocessor which decorates incoming {@link cloud.commandframework.context.CommandContext} * with Velocity specific objects * - * @param + * @param Command sender type * @since 1.1.0 */ final class VelocityCommandPreprocessor implements CommandPreprocessor { diff --git a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityPluginRegistrationHandler.java b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityPluginRegistrationHandler.java index b04da822..41f91a06 100644 --- a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityPluginRegistrationHandler.java +++ b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/VelocityPluginRegistrationHandler.java @@ -55,6 +55,7 @@ final class VelocityPluginRegistrationHandler implements CommandRegistrationH } @Override + @SuppressWarnings("unchecked") public boolean registerCommand(final @NonNull Command command) { final CommandArgument argument = command.getArguments().get(0); final List aliases = ((StaticArgument) argument).getAlternativeAliases(); diff --git a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/arguments/PlayerArgument.java b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/arguments/PlayerArgument.java index 64d45985..131f6b04 100644 --- a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/arguments/PlayerArgument.java +++ b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/arguments/PlayerArgument.java @@ -179,6 +179,8 @@ public final class PlayerArgument extends CommandArgument { public static final class PlayerParseException extends ParserException { + private static final long serialVersionUID = -4839583631837040297L; + private PlayerParseException( final @NonNull String input, final @NonNull CommandContext context diff --git a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/arguments/ServerArgument.java b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/arguments/ServerArgument.java index e553518a..5b838d88 100644 --- a/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/arguments/ServerArgument.java +++ b/cloud-minecraft/cloud-velocity/src/main/java/cloud/commandframework/velocity/arguments/ServerArgument.java @@ -172,6 +172,8 @@ public final class ServerArgument extends CommandArgument context diff --git a/cloud-services/src/main/java/cloud/commandframework/services/AnnotatedMethodService.java b/cloud-services/src/main/java/cloud/commandframework/services/AnnotatedMethodService.java index 2e12164c..e1c94c92 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/AnnotatedMethodService.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/AnnotatedMethodService.java @@ -52,6 +52,7 @@ class AnnotatedMethodService implements Service @NonNull ServicePipeline registerMethods( final @NonNull T instance ) throws Exception { diff --git a/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java b/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java index 1e9d7f6c..a554e068 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java @@ -50,6 +50,7 @@ public interface ConsumerService } @Override + @SuppressWarnings("FunctionalInterfaceMethodChanged") default @NonNull State handle(final @NonNull Context context) { try { this.accept(context); @@ -71,6 +72,8 @@ public interface ConsumerService class PipeBurst extends RuntimeException { + private static final long serialVersionUID = -1143137258194595985L; + private PipeBurst() { } diff --git a/cloud-services/src/main/java/cloud/commandframework/services/types/Service.java b/cloud-services/src/main/java/cloud/commandframework/services/types/Service.java index 2647de04..ae4c7200 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/types/Service.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/types/Service.java @@ -55,6 +55,7 @@ public interface Service extends Function<@NonNull Context, @Nu @Nullable Result handle(@NonNull Context context) throws Exception; @Override + @SuppressWarnings("FunctionalInterfaceMethodChanged") default @Nullable Result apply(@NonNull Context context) { try { return this.handle(context); diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultMockService.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultMockService.java index 12806150..3dc383f3 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultMockService.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultMockService.java @@ -23,7 +23,7 @@ // package cloud.commandframework.services.mock; -public class DefaultMockService implements MockService { +public final class DefaultMockService implements MockService { @Override public MockResult handle(final MockContext mockContext) @@ -37,6 +37,8 @@ public class DefaultMockService implements MockService { public static class TotallyIntentionalException extends Exception { + private static final long serialVersionUID = -6277471288867949574L; + } } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/package-info.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/package-info.java new file mode 100644 index 00000000..a78cf541 --- /dev/null +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/package-info.java @@ -0,0 +1,28 @@ +// +// MIT License +// +// Copyright (c) 2020 Alexander Söderberg & Contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +/** + * Mock service files + */ +package cloud.commandframework.services.mock; diff --git a/cloud-tasks/src/main/java/cloud/commandframework/tasks/TaskRecipe.java b/cloud-tasks/src/main/java/cloud/commandframework/tasks/TaskRecipe.java index 2eac2a6a..94d2f396 100644 --- a/cloud-tasks/src/main/java/cloud/commandframework/tasks/TaskRecipe.java +++ b/cloud-tasks/src/main/java/cloud/commandframework/tasks/TaskRecipe.java @@ -35,7 +35,7 @@ import java.util.function.BiConsumer; * A task recipe is a chain of tasks with optional synchronization steps, * that can be used to produce some sort of result from some input */ -@SuppressWarnings("ALL") +@SuppressWarnings({"unchecked", "rawtypes", "unused", "overloads"}) public final class TaskRecipe { private final TaskSynchronizer synchronizer; diff --git a/examples/example-bukkit/src/main/java/cloud/commandframework/examples/bukkit/ExamplePlugin.java b/examples/example-bukkit/src/main/java/cloud/commandframework/examples/bukkit/ExamplePlugin.java index 87e77fbf..d7178171 100644 --- a/examples/example-bukkit/src/main/java/cloud/commandframework/examples/bukkit/ExamplePlugin.java +++ b/examples/example-bukkit/src/main/java/cloud/commandframework/examples/bukkit/ExamplePlugin.java @@ -91,6 +91,7 @@ import java.util.function.Function; /** * Example plugin class */ +@SuppressWarnings("unused") public final class ExamplePlugin extends JavaPlugin { private BukkitCommandManager manager; diff --git a/examples/example-jda/src/main/java/cloud/commandframework/examples/jda/CustomUser.java b/examples/example-jda/src/main/java/cloud/commandframework/examples/jda/CustomUser.java index b510eab2..065eab2d 100644 --- a/examples/example-jda/src/main/java/cloud/commandframework/examples/jda/CustomUser.java +++ b/examples/example-jda/src/main/java/cloud/commandframework/examples/jda/CustomUser.java @@ -38,7 +38,7 @@ public abstract class CustomUser { * @param user Sending user * @param channel Channel that the message was sent in */ - public CustomUser(final @NonNull User user, final @NonNull MessageChannel channel) { + protected CustomUser(final @NonNull User user, final @NonNull MessageChannel channel) { this.user = user; this.channel = channel; } diff --git a/examples/example-velocity/src/main/java/cloud/commandframework/examples/velocity/ExampleVelocityPlugin.java b/examples/example-velocity/src/main/java/cloud/commandframework/examples/velocity/ExampleVelocityPlugin.java index 58cdcd14..4c367ed5 100644 --- a/examples/example-velocity/src/main/java/cloud/commandframework/examples/velocity/ExampleVelocityPlugin.java +++ b/examples/example-velocity/src/main/java/cloud/commandframework/examples/velocity/ExampleVelocityPlugin.java @@ -37,7 +37,6 @@ import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; import com.velocitypowered.api.plugin.Plugin; import com.velocitypowered.api.proxy.Player; -import com.velocitypowered.api.proxy.ProxyServer; import com.velocitypowered.api.proxy.server.RegisteredServer; import net.kyori.adventure.identity.Identity; import net.kyori.adventure.text.Component; @@ -45,7 +44,6 @@ import net.kyori.adventure.text.format.NamedTextColor; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.function.Function; -import java.util.logging.Logger; @Plugin( id = "example-plugin", @@ -54,10 +52,6 @@ import java.util.logging.Logger; ) public final class ExampleVelocityPlugin { - @Inject - private ProxyServer server; - @Inject - private Logger logger; @Inject private Injector injector; diff --git a/scripts/dependencies.gradle b/scripts/dependencies.gradle index e38bf557..3c3bd6e9 100644 --- a/scripts/dependencies.gradle +++ b/scripts/dependencies.gradle @@ -2,6 +2,7 @@ ext { vers = [ 'checker-qual' : '3.7.0', 'geantyref' : '1.3.11', + 'errorprone' : '2.4.0', // DISCORD DEPENDENCIES 'javacord' : '3.1.1', 'jda' : '4.2.0_209', @@ -14,6 +15,8 @@ ext { 'adventure-api' : '4.1.1', 'paper-api' : '1.15.2-R0.1-SNAPSHOT', 'velocity-api' : '1.1.0-SNAPSHOT', + 'jb-annotations': '20.1.0', + 'guava' : '30.0-jre', // IRC DEPENDENCIES 'pircbotx' : '83a4c22e80', // TEST DEPENDENCIES