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