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
|
# 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"]
|
## v0.0.18 [!badge variant="info" text="2025-07-21"]
|
||||||
|
|
||||||
- Added more metrics
|
- 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(
|
public record DialogInputs(
|
||||||
@Nullable List<DialogTextField> textFields,
|
@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() {
|
public List<DialogInput> all() {
|
||||||
List<DialogInput> all = new ArrayList<>();
|
List<DialogInput> all = new ArrayList<>();
|
||||||
@@ -22,6 +23,10 @@ public record DialogInputs(
|
|||||||
all.addAll(selects);
|
all.addAll(selects);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (checkboxes != null) {
|
||||||
|
all.addAll(checkboxes);
|
||||||
|
}
|
||||||
|
|
||||||
all.sort((o1, o2) -> {
|
all.sort((o1, o2) -> {
|
||||||
if (o1.getOrder() == o2.getOrder()) {
|
if (o1.getOrder() == o2.getOrder()) {
|
||||||
return 0;
|
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.DialogBodyData;
|
||||||
import com.fancyinnovations.fancydialogs.api.data.DialogButton;
|
import com.fancyinnovations.fancydialogs.api.data.DialogButton;
|
||||||
import com.fancyinnovations.fancydialogs.api.data.DialogData;
|
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.DialogInput;
|
||||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogSelect;
|
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogSelect;
|
||||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogTextField;
|
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.actions.FS_DialogCustomAction;
|
||||||
import de.oliver.fancysitula.api.dialogs.body.FS_DialogBody;
|
import de.oliver.fancysitula.api.dialogs.body.FS_DialogBody;
|
||||||
import de.oliver.fancysitula.api.dialogs.body.FS_DialogTextBody;
|
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.*;
|
||||||
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.types.FS_MultiActionDialog;
|
import de.oliver.fancysitula.api.dialogs.types.FS_MultiActionDialog;
|
||||||
import de.oliver.fancysitula.api.entities.FS_RealPlayer;
|
import de.oliver.fancysitula.api.entities.FS_RealPlayer;
|
||||||
import de.oliver.fancysitula.factories.FancySitula;
|
import de.oliver.fancysitula.factories.FancySitula;
|
||||||
@@ -78,6 +76,8 @@ public class DialogImpl extends Dialog {
|
|||||||
ChatColorHandler.translate(select.getLabel(), player, ParserTypes.placeholder()),
|
ChatColorHandler.translate(select.getLabel(), player, ParserTypes.placeholder()),
|
||||||
!select.getLabel().isEmpty()
|
!select.getLabel().isEmpty()
|
||||||
);
|
);
|
||||||
|
} else if (input instanceof DialogCheckbox checkbox) {
|
||||||
|
control = new FS_DialogBooleanInput(input.getLabel(), checkbox.isInitial(), "true", "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (control == null) {
|
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.DialogBodyData;
|
||||||
import com.fancyinnovations.fancydialogs.api.data.DialogButton;
|
import com.fancyinnovations.fancydialogs.api.data.DialogButton;
|
||||||
import com.fancyinnovations.fancydialogs.api.data.DialogData;
|
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.DialogInputs;
|
||||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogSelect;
|
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogSelect;
|
||||||
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogTextField;
|
import com.fancyinnovations.fancydialogs.api.data.inputs.DialogTextField;
|
||||||
@@ -66,6 +67,14 @@ public class DefaultDialogs {
|
|||||||
new DialogSelect.Entry("yellow", "<color:yellow>Yellow</color>", false)
|
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(
|
List.of(
|
||||||
@@ -80,6 +89,13 @@ public class DefaultDialogs {
|
|||||||
List.of(
|
List.of(
|
||||||
new DialogButton.DialogAction("message", "Hi {nickname}, your favorite color is: <color:{color_choice}>{color_choice}</color>")
|
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