From a6b98ca2786092e813a7217ff5eb8213ee6b9a13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20S=C3=B6derberg?= Date: Sat, 3 Oct 2020 21:34:39 +0200 Subject: [PATCH] :art: Some codestyle fixes --- build.gradle | 3 --- .../bukkit/BukkitCommandPreprocessor.java | 12 ++++++++++-- .../arguments/selector/EntitySelector.java | 18 +++++++++++++----- .../selector/MultipleEntitySelector.java | 5 ++++- .../selector/MultiplePlayerSelector.java | 16 ++++++++++++---- .../selector/SingleEntitySelector.java | 13 ++++++++++--- .../selector/SinglePlayerSelector.java | 13 ++++++++++--- .../MultipleEntitySelectorArgument.java | 6 ++++-- .../MultiplePlayerSelectorArgument.java | 2 ++ .../selector/SingleEntitySelectorArgument.java | 4 +++- .../selector/SinglePlayerSelectorArgument.java | 5 ++++- .../paper/PaperBrigadierListener.java | 7 ++++--- 12 files changed, 76 insertions(+), 28 deletions(-) diff --git a/build.gradle b/build.gradle index 92c83cff..409313af 100644 --- a/build.gradle +++ b/build.gradle @@ -117,9 +117,6 @@ subprojects { maven(MavenPublication) { from components.java - artifact javadocJar - artifact sourcesJar - pom { name = project.name url = 'https://github.com/Sauilitired/cloud' 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 cf237beb..197be7f4 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 @@ -27,7 +27,14 @@ import cloud.commandframework.execution.preprocessor.CommandPreprocessingContext import cloud.commandframework.execution.preprocessor.CommandPreprocessor; import org.checkerframework.checker.nullness.qual.NonNull; -public class BukkitCommandPreprocessor implements CommandPreprocessor { +/** + * Command preprocessor which decorates incoming {@link cloud.commandframework.context.CommandContext} + * with Bukkit specific objects + * + * @param + */ +final class BukkitCommandPreprocessor implements CommandPreprocessor { + private final BukkitCommandManager mgr; /** @@ -35,7 +42,7 @@ public class BukkitCommandPreprocessor implements CommandPreprocessor { * * @param mgr The BukkitCommandManager */ - public BukkitCommandPreprocessor(final BukkitCommandManager mgr) { + BukkitCommandPreprocessor(final @NonNull BukkitCommandManager mgr) { this.mgr = mgr; } @@ -49,4 +56,5 @@ public class BukkitCommandPreprocessor implements CommandPreprocessor { context.getCommandContext().getSender())); context.getCommandContext().store("CloudBukkitCapabilities", mgr.queryCapabilities()); } + } 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 d76ddf6c..dc0f41cd 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 @@ -24,26 +24,34 @@ package cloud.commandframework.bukkit.arguments.selector; import org.bukkit.entity.Entity; +import org.checkerframework.checker.nullness.qual.NonNull; +import java.util.Collections; import java.util.List; /** * A class to represent the result of parsing a Minecraft Entity/Target Selector argument */ public abstract class EntitySelector { + private final List entities; /** - * @param entities The List of Bukkit {@link Entity}s to construct the {@link EntitySelector} from + * Construct a new entity selector + * + * @param entities The List of Bukkit {@link Entity entities} to construct the {@link EntitySelector} from */ - public EntitySelector(final List entities) { + public EntitySelector(final @NonNull List<@NonNull Entity> entities) { this.entities = entities; } /** - * @return The list of Entities resulting from parsing the entity selector + * Get the resulting entities + * + * @return Immutable view of the list list of entities resulting from parsing the entity selector */ - public final List getEntities() { - return entities; + public @NonNull List<@NonNull Entity> getEntities() { + return Collections.unmodifiableList(this.entities); } + } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/MultipleEntitySelector.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/MultipleEntitySelector.java index bb4d1db6..4ff7031e 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/MultipleEntitySelector.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/MultipleEntitySelector.java @@ -24,14 +24,17 @@ package cloud.commandframework.bukkit.arguments.selector; import org.bukkit.entity.Entity; +import org.checkerframework.checker.nullness.qual.NonNull; import java.util.List; public class MultipleEntitySelector extends EntitySelector { + /** * @param entities The List of Bukkit {@link Entity}s to construct the {@link EntitySelector} from */ - public MultipleEntitySelector(final List entities) { + public MultipleEntitySelector(final @NonNull List<@NonNull Entity> entities) { super(entities); } + } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/MultiplePlayerSelector.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/MultiplePlayerSelector.java index d4f47cba..a14eb852 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/MultiplePlayerSelector.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/MultiplePlayerSelector.java @@ -26,17 +26,22 @@ package cloud.commandframework.bukkit.arguments.selector; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; +import org.checkerframework.checker.nullness.qual.NonNull; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class MultiplePlayerSelector extends MultipleEntitySelector { + private final List players = new ArrayList<>(); /** + * Construct a new selector + * * @param entities The List of Bukkit {@link Entity}s to construct the {@link EntitySelector} from */ - public MultiplePlayerSelector(final List entities) { + public MultiplePlayerSelector(final @NonNull List<@NonNull Entity> entities) { super(entities); entities.forEach(e -> { if (e.getType() != EntityType.PLAYER) { @@ -48,9 +53,12 @@ public class MultiplePlayerSelector extends MultipleEntitySelector { } /** - * @return The list of Bukkit Players parsed from the selector + * Get the resulting players + * + * @return Immutable views of the list of Bukkit {@link Player players} parsed from the selector */ - public final List getPlayers() { - return players; + public final @NonNull List<@NonNull Player> getPlayers() { + return Collections.unmodifiableList(this.players); } + } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/SingleEntitySelector.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/SingleEntitySelector.java index d7bd395c..b5421987 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/SingleEntitySelector.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/SingleEntitySelector.java @@ -24,14 +24,18 @@ package cloud.commandframework.bukkit.arguments.selector; import org.bukkit.entity.Entity; +import org.checkerframework.checker.nullness.qual.NonNull; import java.util.List; public final class SingleEntitySelector extends MultipleEntitySelector { + /** - * @param entities The List of Bukkit {@link Entity}s to construct the {@link EntitySelector} from + * Construct a new selector + * + * @param entities The List of Bukkit {@link Entity entities} to construct the {@link EntitySelector} from */ - public SingleEntitySelector(final List entities) { + public SingleEntitySelector(final @NonNull List<@NonNull Entity> entities) { super(entities); if (entities.size() > 1) { throw new IllegalArgumentException("More than 1 entity selected in single entity selector."); @@ -39,9 +43,12 @@ public final class SingleEntitySelector extends MultipleEntitySelector { } /** + * Get the selected entity + * * @return Gets the single Bukkit Entity parsed by the selector */ - public Entity getEntity() { + public @NonNull Entity getEntity() { return this.getEntities().get(0); } + } diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/SinglePlayerSelector.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/SinglePlayerSelector.java index 9c010a1f..26bd699e 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/SinglePlayerSelector.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/arguments/selector/SinglePlayerSelector.java @@ -25,14 +25,18 @@ package cloud.commandframework.bukkit.arguments.selector; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; +import org.checkerframework.checker.nullness.qual.NonNull; import java.util.List; public final class SinglePlayerSelector extends MultiplePlayerSelector { + /** - * @param entities The List of Bukkit {@link Entity}s to construct the {@link EntitySelector} from + * Construct a new selector + * + * @param entities The List of Bukkit {@link Entity entities} to construct the {@link EntitySelector} from */ - public SinglePlayerSelector(final List entities) { + public SinglePlayerSelector(final @NonNull List<@NonNull Entity> entities) { super(entities); if (getPlayers().size() > 1) { throw new IllegalArgumentException("More than 1 player selected in single player selector."); @@ -40,9 +44,12 @@ public final class SinglePlayerSelector extends MultiplePlayerSelector { } /** + * Get the selected player + * * @return Gets the single player parsed by the selector */ - public Player getPlayer() { + public @NonNull Player getPlayer() { return this.getPlayers().get(0); } + } 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 532664a7..2bcc80a9 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 @@ -40,6 +40,7 @@ import java.util.Set; import java.util.function.BiFunction; public final class MultipleEntitySelectorArgument extends CommandArgument { + private MultipleEntitySelectorArgument(final boolean required, @NonNull final String name, @NonNull final String defaultValue, @@ -56,7 +57,7 @@ public final class MultipleEntitySelectorArgument extends CommandArgument Command sender type * @return Created builder */ - public static MultipleEntitySelectorArgument.Builder newBuilder(@NonNull final String name) { + public static MultipleEntitySelectorArgument.@NonNull Builder newBuilder(@NonNull final String name) { return new MultipleEntitySelectorArgument.Builder<>(name); } @@ -121,7 +122,7 @@ public final class MultipleEntitySelectorArgument extends CommandArgument parse(@NonNull final CommandContext commandContext, @NonNull final Queue<@NonNull String> inputQueue) { - if (!((Set) commandContext.get("CloudBukkitCapabilities")).contains( + if (!commandContext.>get("CloudBukkitCapabilities").contains( CloudBukkitCapabilities.BRIGADIER)) { return ArgumentParseResult.failure( new IllegalArgumentException("Entity selector argument type not supported below Minecraft 1.13.")); @@ -142,4 +143,5 @@ public final class MultipleEntitySelectorArgument extends CommandArgument extends CommandArgument { + private MultiplePlayerSelectorArgument(final boolean required, @NonNull final String name, @NonNull final String defaultValue, @@ -169,4 +170,5 @@ public final class MultiplePlayerSelectorArgument extends CommandArgument extends CommandArgument { + private SingleEntitySelectorArgument(final boolean required, @NonNull final String name, @NonNull final String defaultValue, @@ -55,7 +56,7 @@ public final class SingleEntitySelectorArgument extends CommandArgument Command sender type * @return Created builder */ - public static SingleEntitySelectorArgument.Builder newBuilder(@NonNull final String name) { + public static SingleEntitySelectorArgument.@NonNull Builder newBuilder(@NonNull final String name) { return new SingleEntitySelectorArgument.Builder<>(name); } @@ -146,4 +147,5 @@ public final class SingleEntitySelectorArgument extends CommandArgument extends CommandArgument { + private SinglePlayerSelectorArgument(final boolean required, @NonNull final String name, @NonNull final String defaultValue, @@ -59,7 +60,7 @@ public final class SinglePlayerSelectorArgument extends CommandArgument Command sender type * @return Created builder */ - public static SinglePlayerSelectorArgument.Builder newBuilder(@NonNull final String name) { + public static SinglePlayerSelectorArgument.@NonNull Builder newBuilder(@NonNull final String name) { return new SinglePlayerSelectorArgument.Builder<>(name); } @@ -132,6 +133,7 @@ public final class SinglePlayerSelectorArgument extends CommandArgument) commandContext.get("CloudBukkitCapabilities")).contains( CloudBukkitCapabilities.BRIGADIER)) { + @SuppressWarnings("deprecation") Player player = Bukkit.getPlayer(input); if (player == null) { @@ -172,4 +174,5 @@ public final class SinglePlayerSelectorArgument extends CommandArgument implements Listener { * @param playersOnly Whether the selector is for players only (true), or for all entities (false) * @return The NMS ArgumentType */ - private Supplier> getEntitySelectorArgument(final boolean single, final boolean playersOnly) { + private Supplier> getEntitySelectorArgument(final boolean single, + final boolean playersOnly) { return () -> { try { - Constructor constructor = this.getNMSArgument("Entity").getDeclaredConstructors()[0]; + final Constructor constructor = this.getNMSArgument("Entity").getDeclaredConstructors()[0]; constructor.setAccessible(true); return (ArgumentType) constructor.newInstance(single, playersOnly); - } catch (Exception e) { + } catch (final Exception e) { this.paperCommandManager.getOwningPlugin().getLogger().log(Level.INFO, "Failed to retrieve Selector Argument", e); return null; }