mirror of
https://github.com/FancyInnovations/FancyPlugins.git
synced 2025-12-06 07:43:36 +00:00
packets: Add support for multi action dialogs
This commit is contained in:
@@ -15,6 +15,7 @@ import de.oliver.fancysitula.api.dialogs.inputs.FS_DialogNumberRangeInput;
|
||||
import de.oliver.fancysitula.api.dialogs.inputs.FS_DialogSingleOptionInput;
|
||||
import de.oliver.fancysitula.api.dialogs.types.FS_ConfirmationDialog;
|
||||
import de.oliver.fancysitula.api.dialogs.types.FS_DialogListDialog;
|
||||
import de.oliver.fancysitula.api.dialogs.types.FS_MultiActionDialog;
|
||||
import de.oliver.fancysitula.api.dialogs.types.FS_NoticeDialog;
|
||||
import de.oliver.fancysitula.api.entities.FS_RealPlayer;
|
||||
import de.oliver.fancysitula.api.packets.FS_ClientboundShowDialogPacket;
|
||||
@@ -69,6 +70,8 @@ public class ClientboundShowDialogPacketImpl extends FS_ClientboundShowDialogPac
|
||||
return confirmationToNms(confirmation);
|
||||
} else if (dialog instanceof FS_DialogListDialog dialogList) {
|
||||
return dialogListToNms(dialogList);
|
||||
} else if (dialog instanceof FS_MultiActionDialog multiActionDialog) {
|
||||
return multiActionDialogToNms(multiActionDialog);
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -106,6 +109,21 @@ public class ClientboundShowDialogPacketImpl extends FS_ClientboundShowDialogPac
|
||||
return new DialogListDialog(common, dialogSet, exitButton, dialogList.getColumns(), dialogList.getButtonWidth());
|
||||
}
|
||||
|
||||
private Dialog multiActionDialogToNms(FS_MultiActionDialog multiActionDialog) {
|
||||
CommonDialogData common = commonToNms(multiActionDialog.getDialogData());
|
||||
List<ActionButton> actionButtons = new ArrayList<>();
|
||||
|
||||
for (FS_DialogActionButton actionButton : multiActionDialog.getActions()) {
|
||||
actionButtons.add(actionButtonToNms(actionButton));
|
||||
}
|
||||
|
||||
Optional<ActionButton> exitAction = multiActionDialog.getExitAction() != null ?
|
||||
Optional.of(actionButtonToNms(multiActionDialog.getExitAction())) :
|
||||
Optional.empty();
|
||||
|
||||
return new MultiActionDialog(common, actionButtons, exitAction, multiActionDialog.getColumns());
|
||||
}
|
||||
|
||||
private CommonDialogData commonToNms(FS_CommonDialogData dialogData) {
|
||||
Component title = PaperAdventure.asVanilla(MiniMessage.miniMessage().deserialize(dialogData.getTitle()));
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
package de.oliver.fancysitula.api.dialogs.types;
|
||||
|
||||
import de.oliver.fancysitula.api.dialogs.FS_CommonDialogData;
|
||||
import de.oliver.fancysitula.api.dialogs.FS_Dialog;
|
||||
import de.oliver.fancysitula.api.dialogs.actions.FS_DialogActionButton;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class FS_MultiActionDialog implements FS_Dialog {
|
||||
|
||||
private FS_CommonDialogData dialogData;
|
||||
private List<FS_DialogActionButton> actions;
|
||||
private @Nullable FS_DialogActionButton exitAction;
|
||||
private int columns;
|
||||
|
||||
public FS_MultiActionDialog(FS_CommonDialogData dialogData, List<FS_DialogActionButton> actions, @Nullable FS_DialogActionButton exitAction, int columns) {
|
||||
this.dialogData = dialogData;
|
||||
this.actions = actions;
|
||||
this.exitAction = exitAction;
|
||||
this.columns = columns;
|
||||
}
|
||||
|
||||
public FS_CommonDialogData getDialogData() {
|
||||
return dialogData;
|
||||
}
|
||||
|
||||
public void setDialogData(FS_CommonDialogData dialogData) {
|
||||
this.dialogData = dialogData;
|
||||
}
|
||||
|
||||
public List<FS_DialogActionButton> getActions() {
|
||||
return actions;
|
||||
}
|
||||
|
||||
public void setActions(List<FS_DialogActionButton> actions) {
|
||||
this.actions = actions;
|
||||
}
|
||||
|
||||
public @Nullable FS_DialogActionButton getExitAction() {
|
||||
return exitAction;
|
||||
}
|
||||
|
||||
public void setExitAction(@Nullable FS_DialogActionButton exitAction) {
|
||||
this.exitAction = exitAction;
|
||||
}
|
||||
|
||||
public int getColumns() {
|
||||
return columns;
|
||||
}
|
||||
|
||||
public void setColumns(int columns) {
|
||||
this.columns = columns;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user