From a8b2b9a6085ce67cbcc1fae20dbdc126ce637f83 Mon Sep 17 00:00:00 2001 From: jmp Date: Sat, 3 Oct 2020 14:29:18 -0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Expose=20input=20string=20from=20En?= =?UTF-8?q?titySelectors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/arguments/selector/EntitySelector.java | 14 +++++++++++++- .../arguments/selector/MultipleEntitySelector.java | 6 ++++-- .../arguments/selector/MultiplePlayerSelector.java | 6 ++++-- .../arguments/selector/SingleEntitySelector.java | 6 ++++-- .../arguments/selector/SinglePlayerSelector.java | 6 ++++-- .../selector/MultipleEntitySelectorArgument.java | 2 +- .../selector/MultiplePlayerSelectorArgument.java | 4 ++-- .../selector/SingleEntitySelectorArgument.java | 2 +- .../selector/SinglePlayerSelectorArgument.java | 4 ++-- 9 files changed, 35 insertions(+), 15 deletions(-) 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 dc0f41cd..2aadbc48 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 @@ -34,14 +34,18 @@ import java.util.List; */ public abstract class EntitySelector { + private final String selector; private final List entities; /** * Construct a new entity selector * + * @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(final @NonNull List<@NonNull Entity> entities) { + public EntitySelector(final @NonNull String selector, + final @NonNull List<@NonNull Entity> entities) { + this.selector = selector; this.entities = entities; } @@ -54,4 +58,12 @@ public abstract class EntitySelector { return Collections.unmodifiableList(this.entities); } + /** + * Get the input String for this selector + * + * @return The input String for this selector + */ + public @NonNull String getSelector() { + return this.selector; + } } 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 4ff7031e..8f474573 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 @@ -31,10 +31,12 @@ import java.util.List; public class MultipleEntitySelector extends EntitySelector { /** + * @param selector The input string used to create this selector * @param entities The List of Bukkit {@link Entity}s to construct the {@link EntitySelector} from */ - public MultipleEntitySelector(final @NonNull List<@NonNull Entity> entities) { - super(entities); + public MultipleEntitySelector(final @NonNull String selector, + final @NonNull List<@NonNull Entity> entities) { + super(selector, 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 a14eb852..c1aebb56 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 @@ -39,10 +39,12 @@ public class MultiplePlayerSelector extends MultipleEntitySelector { /** * Construct a new selector * + * @param selector The input string used to create this selector * @param entities The List of Bukkit {@link Entity}s to construct the {@link EntitySelector} from */ - public MultiplePlayerSelector(final @NonNull List<@NonNull Entity> entities) { - super(entities); + public MultiplePlayerSelector(final @NonNull String selector, + final @NonNull List<@NonNull Entity> entities) { + super(selector, entities); entities.forEach(e -> { if (e.getType() != EntityType.PLAYER) { throw new IllegalArgumentException("Non-players selected in player selector."); 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 b5421987..137aed28 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 @@ -33,10 +33,12 @@ public final class SingleEntitySelector extends MultipleEntitySelector { /** * Construct a new selector * + * @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 SingleEntitySelector(final @NonNull List<@NonNull Entity> entities) { - super(entities); + public SingleEntitySelector(final @NonNull String selector, + final @NonNull List<@NonNull Entity> entities) { + super(selector, entities); if (entities.size() > 1) { throw new IllegalArgumentException("More than 1 entity selected in single entity selector."); } 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 26bd699e..1abf89e8 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 @@ -34,10 +34,12 @@ public final class SinglePlayerSelector extends MultiplePlayerSelector { /** * Construct a new selector * + * @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 SinglePlayerSelector(final @NonNull List<@NonNull Entity> entities) { - super(entities); + public SinglePlayerSelector(final @NonNull String selector, + final @NonNull List<@NonNull Entity> entities) { + super(selector, entities); if (getPlayers().size() > 1) { throw new IllegalArgumentException("More than 1 player selected in single player selector."); } 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 0faedf52..701c71c4 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 @@ -140,7 +140,7 @@ public final class MultipleEntitySelectorArgument extends CommandArgument extends CommandArgument entities; @@ -156,7 +156,7 @@ public final class MultiplePlayerSelectorArgument extends CommandArgument extends CommandArgument extends CommandArgument entities; @@ -159,7 +159,7 @@ public final class SinglePlayerSelectorArgument extends CommandArgument