From 4523859f00fce57708bf4d0d0d070eb48848832b Mon Sep 17 00:00:00 2001 From: theEvilReaper Date: Tue, 12 May 2026 14:42:08 +0200 Subject: [PATCH] feat(meta): add method for other input options --- .../pica/dialog/meta/DialogMeta.java | 32 +++++++++++++++- .../pica/dialog/meta/DialogMetaData.java | 38 ++++++++++++++++++- 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/onelitefeather/pica/dialog/meta/DialogMeta.java b/src/main/java/net/onelitefeather/pica/dialog/meta/DialogMeta.java index f7b156f..e75c30c 100644 --- a/src/main/java/net/onelitefeather/pica/dialog/meta/DialogMeta.java +++ b/src/main/java/net/onelitefeather/pica/dialog/meta/DialogMeta.java @@ -7,6 +7,9 @@ import net.minestom.server.dialog.DialogMetadata; import net.onelitefeather.pica.dialog.display.component.ComponentTemplate; import net.onelitefeather.pica.dialog.display.item.ItemTemplate; +import net.onelitefeather.pica.dialog.input.bool.BooleanTemplate; +import net.onelitefeather.pica.dialog.input.option.SingleOptionTemplate; +import net.onelitefeather.pica.dialog.input.range.RangeTemplate; import net.onelitefeather.pica.dialog.input.text.TextInputTemplate; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -18,7 +21,7 @@ * The {@link DialogMeta} is responsible for building the {@link DialogMetadata} object for a {@link net.minestom.server.dialog.Dialog}. * * @author theEvilReaper - * @version 1.0.1 + * @version 1.1.0 * @since 1.0.0 */ @ApiStatus.NonExtendable @@ -104,6 +107,33 @@ public sealed interface DialogMeta permits DialogMetaData { */ DialogMeta text(String key, Consumer template); + /** + * Add a {@link SingleOptionTemplate} to the dialog meta. + * + * @param key the key of the option + * @param template the template to add + * @return the builder + */ + DialogMeta option(String key, Consumer template); + + /** + * Add a {@link RangeTemplate} to the dialog meta. + * + * @param key the key of the range + * @param template the template to add + * @return the builder + */ + DialogMeta range(String key, Consumer template); + + /** + * Add a {@link BooleanTemplate} to the dialog meta. + * + * @param key the key of the boolean + * @param template the template to add + * @return the builder + */ + DialogMeta bool(String key, Consumer template); + /** * Set a list of {@link DialogInput}s to the dialog meta * diff --git a/src/main/java/net/onelitefeather/pica/dialog/meta/DialogMetaData.java b/src/main/java/net/onelitefeather/pica/dialog/meta/DialogMetaData.java index 6f31696..bfce98d 100644 --- a/src/main/java/net/onelitefeather/pica/dialog/meta/DialogMetaData.java +++ b/src/main/java/net/onelitefeather/pica/dialog/meta/DialogMetaData.java @@ -7,6 +7,9 @@ import net.minestom.server.dialog.DialogMetadata; import net.onelitefeather.pica.dialog.display.component.ComponentTemplate; import net.onelitefeather.pica.dialog.display.item.ItemTemplate; +import net.onelitefeather.pica.dialog.input.bool.BooleanTemplate; +import net.onelitefeather.pica.dialog.input.option.SingleOptionTemplate; +import net.onelitefeather.pica.dialog.input.range.RangeTemplate; import net.onelitefeather.pica.dialog.input.text.TextInputTemplate; import org.jetbrains.annotations.Nullable; @@ -18,7 +21,7 @@ * The {@link DialogMetaData} is responsible for building the {@link DialogMetadata} object. * * @author theEvilReaper - * @version 1.0.0 + * @version 1.1.0 * @since 0.1.0 */ public final class DialogMetaData implements DialogMeta { @@ -131,6 +134,39 @@ public DialogMeta text(String key, Consumer template) { return this; } + /** + * {@inheritDoc} + */ + @Override + public DialogMeta option(String key, Consumer template) { + SingleOptionTemplate body = SingleOptionTemplate.builder(key); + template.accept(body); + this.inputList.add(body.build()); + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public DialogMeta range(String key, Consumer template) { + RangeTemplate body = RangeTemplate.builder(key); + template.accept(body); + this.inputList.add(body.build()); + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public DialogMeta bool(String key, Consumer template) { + BooleanTemplate body = BooleanTemplate.builder(key); + template.accept(body); + this.inputList.add(body.build()); + return this; + } + /** * {@inheritDoc} */