packets: Add support for confirmation dialogs

This commit is contained in:
Oliver
2025-06-15 16:31:37 +02:00
committed by Oliver
parent a42d1ba92e
commit c6db12a3f7
2 changed files with 53 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ import de.oliver.fancysitula.api.dialogs.inputs.FS_DialogBooleanInput;
import de.oliver.fancysitula.api.dialogs.inputs.FS_DialogInput;
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_NoticeDialog;
import de.oliver.fancysitula.api.entities.FS_RealPlayer;
import de.oliver.fancysitula.api.packets.FS_ClientboundShowDialogPacket;
@@ -62,6 +63,8 @@ public class ClientboundShowDialogPacketImpl extends FS_ClientboundShowDialogPac
private Dialog toNms(FS_Dialog dialog) {
if (dialog instanceof FS_NoticeDialog notice) {
return noticeToNms(notice);
} else if (dialog instanceof FS_ConfirmationDialog confirmation) {
return confirmationToNms(confirmation);
}
return null;
@@ -74,6 +77,14 @@ public class ClientboundShowDialogPacketImpl extends FS_ClientboundShowDialogPac
return new NoticeDialog(common, actionButton);
}
private Dialog confirmationToNms(FS_ConfirmationDialog notice) {
CommonDialogData common = commonToNms(notice.getDialogData());
ActionButton yes = actionButtonToNms(notice.getYesButton());
ActionButton no = actionButtonToNms(notice.getNoButton());
return new ConfirmationDialog(common, yes, no);
}
private CommonDialogData commonToNms(FS_CommonDialogData dialogData) {
Component title = PaperAdventure.asVanilla(MiniMessage.miniMessage().deserialize(dialogData.getTitle()));

View File

@@ -0,0 +1,42 @@
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;
public class FS_ConfirmationDialog implements FS_Dialog {
private FS_CommonDialogData dialogData;
private FS_DialogActionButton yesButton;
private FS_DialogActionButton noButton;
public FS_ConfirmationDialog(FS_CommonDialogData dialogData, FS_DialogActionButton yetButton, FS_DialogActionButton noButton) {
this.dialogData = dialogData;
this.yesButton = yetButton;
this.noButton = noButton;
}
public FS_CommonDialogData getDialogData() {
return dialogData;
}
public void setDialogData(FS_CommonDialogData dialogData) {
this.dialogData = dialogData;
}
public FS_DialogActionButton getYesButton() {
return yesButton;
}
public void setYesButton(FS_DialogActionButton yesButton) {
this.yesButton = yesButton;
}
public FS_DialogActionButton getNoButton() {
return noButton;
}
public void setNoButton(FS_DialogActionButton noButton) {
this.noButton = noButton;
}
}