mirror of
https://github.com/FancyInnovations/FancyPlugins.git
synced 2025-12-06 07:43:36 +00:00
fancydialogs: Add checkbox input type
This commit is contained in:
@@ -5,6 +5,10 @@ order: 1
|
||||
|
||||
# FancyDialogs v0.x.x
|
||||
|
||||
## v0.0.19 [!badge variant="info" text="2025-07-25"]
|
||||
|
||||
- Added checkbox input type
|
||||
|
||||
## v0.0.18 [!badge variant="info" text="2025-07-21"]
|
||||
|
||||
- Added more metrics
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.0.18
|
||||
0.0.19
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.fancyinnovations.fancydialogs.api.data.inputs;
|
||||
|
||||
public class DialogCheckbox extends DialogInput {
|
||||
|
||||
private final boolean initial;
|
||||
|
||||
public DialogCheckbox(String key, String label, int order, boolean initial) {
|
||||
super(key, label, order);
|
||||
this.initial = initial;
|
||||
}
|
||||
|
||||
public boolean isInitial() {
|
||||
return initial;
|
||||
}
|
||||
}
|
||||
@@ -7,10 +7,11 @@ import java.util.List;
|
||||
|
||||
public record DialogInputs(
|
||||
@Nullable List<DialogTextField> textFields,
|
||||
@Nullable List<DialogSelect> selects
|
||||
@Nullable List<DialogSelect> selects,
|
||||
@Nullable List<DialogCheckbox> checkboxes
|
||||
) {
|
||||
|
||||
public static final DialogInputs EMPTY = new DialogInputs(List.of(), List.of());
|
||||
public static final DialogInputs EMPTY = new DialogInputs(List.of(), List.of(), List.of());
|
||||
|
||||
public List<DialogInput> all() {
|
||||
List<DialogInput> all = new ArrayList<>();
|
||||
@@ -22,6 +23,10 @@ public record DialogInputs(
|
||||
all.addAll(selects);
|
||||
}
|
||||
|
||||
if (checkboxes != null) {
|
||||
all.addAll(checkboxes);
|
||||
}
|
||||
|
||||
all.sort((o1, o2) -> {
|
||||
if (o1.getOrder() == o2.getOrder()) {
|
||||
return 0;
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.fancyinnovations.fancydialogs.api.Dialog;
|
||||
import com.fancyinnovations.fancydialogs.api.data.DialogBodyData;
|
||||
import com.fancyinnovations.fancydialogs.api.data.DialogButton;
|
||||
import com.fancyinnovations.fancydialogs.api.data.DialogData;
|
||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogCheckbox;
|
||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogInput;
|
||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogSelect;
|
||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogTextField;
|
||||
@@ -15,10 +16,7 @@ import de.oliver.fancysitula.api.dialogs.actions.FS_DialogActionButton;
|
||||
import de.oliver.fancysitula.api.dialogs.actions.FS_DialogCustomAction;
|
||||
import de.oliver.fancysitula.api.dialogs.body.FS_DialogBody;
|
||||
import de.oliver.fancysitula.api.dialogs.body.FS_DialogTextBody;
|
||||
import de.oliver.fancysitula.api.dialogs.inputs.FS_DialogInput;
|
||||
import de.oliver.fancysitula.api.dialogs.inputs.FS_DialogInputControl;
|
||||
import de.oliver.fancysitula.api.dialogs.inputs.FS_DialogSingleOptionInput;
|
||||
import de.oliver.fancysitula.api.dialogs.inputs.FS_DialogTextInput;
|
||||
import de.oliver.fancysitula.api.dialogs.inputs.*;
|
||||
import de.oliver.fancysitula.api.dialogs.types.FS_MultiActionDialog;
|
||||
import de.oliver.fancysitula.api.entities.FS_RealPlayer;
|
||||
import de.oliver.fancysitula.factories.FancySitula;
|
||||
@@ -78,6 +76,8 @@ public class DialogImpl extends Dialog {
|
||||
ChatColorHandler.translate(select.getLabel(), player, ParserTypes.placeholder()),
|
||||
!select.getLabel().isEmpty()
|
||||
);
|
||||
} else if (input instanceof DialogCheckbox checkbox) {
|
||||
control = new FS_DialogBooleanInput(input.getLabel(), checkbox.isInitial(), "true", "false");
|
||||
}
|
||||
|
||||
if (control == null) {
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.fancyinnovations.fancydialogs.FancyDialogsPlugin;
|
||||
import com.fancyinnovations.fancydialogs.api.data.DialogBodyData;
|
||||
import com.fancyinnovations.fancydialogs.api.data.DialogButton;
|
||||
import com.fancyinnovations.fancydialogs.api.data.DialogData;
|
||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogCheckbox;
|
||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogInputs;
|
||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogSelect;
|
||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogTextField;
|
||||
@@ -66,6 +67,14 @@ public class DefaultDialogs {
|
||||
new DialogSelect.Entry("yellow", "<color:yellow>Yellow</color>", false)
|
||||
)
|
||||
)
|
||||
),
|
||||
List.of(
|
||||
new DialogCheckbox(
|
||||
"is_cool",
|
||||
"<color:#ff7300>Are you cool?</color>",
|
||||
3,
|
||||
true
|
||||
)
|
||||
)
|
||||
),
|
||||
List.of(
|
||||
@@ -80,6 +89,13 @@ public class DefaultDialogs {
|
||||
List.of(
|
||||
new DialogButton.DialogAction("message", "Hi {nickname}, your favorite color is: <color:{color_choice}>{color_choice}</color>")
|
||||
)
|
||||
),
|
||||
new DialogButton(
|
||||
"<color:#ffd000>Check if you are cool</color>",
|
||||
"<color:#ff4f19>Click to know if, you are cool</color>",
|
||||
List.of(
|
||||
new DialogButton.DialogAction("message", "Hi {nickname}, are you cool: {is_cool}")
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user