aboutsummaryrefslogtreecommitdiff
path: root/common/src/main/java/dev/isxander/yacl3/api
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/main/java/dev/isxander/yacl3/api')
-rw-r--r--common/src/main/java/dev/isxander/yacl3/api/ListOption.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/common/src/main/java/dev/isxander/yacl3/api/ListOption.java b/common/src/main/java/dev/isxander/yacl3/api/ListOption.java
index 8094ee7..0371c35 100644
--- a/common/src/main/java/dev/isxander/yacl3/api/ListOption.java
+++ b/common/src/main/java/dev/isxander/yacl3/api/ListOption.java
@@ -30,7 +30,16 @@ public interface ListOption<T> extends OptionGroup, Option<List<T>> {
@NotNull ImmutableList<ListOptionEntry<T>> options();
@ApiStatus.Internal
- ListOptionEntry<T> insertNewEntryToTop();
+ int numberOfEntries();
+
+ @ApiStatus.Internal
+ int maximumNumberOfEntries();
+
+ @ApiStatus.Internal
+ int minimumNumberOfEntries();
+
+ @ApiStatus.Internal
+ ListOptionEntry<T> insertNewEntry();
@ApiStatus.Internal
void insertEntry(int index, ListOptionEntry<?> entry);
@@ -106,6 +115,24 @@ public interface ListOption<T> extends OptionGroup, Option<List<T>> {
Builder<T> available(boolean available);
/**
+ * Sets a minimum size for the list. Once this size is reached,
+ * no further entries may be removed.
+ */
+ Builder<T> minimumNumberOfEntries(int number);
+
+ /**
+ * Sets a maximum size for the list. Once this size is reached,
+ * no further entries may be added.
+ */
+ Builder<T> maximumNumberOfEntries(int number);
+
+ /**
+ * Dictates if new entries should be added to the end of the list
+ * rather than the top.
+ */
+ Builder<T> insertEntriesAtEnd(boolean insertAtEnd);
+
+ /**
* Adds a flag to the option.
* Upon applying changes, all flags are executed.
* {@link Option#flags()}