From bd806f992b3bb2ce6c4b09f0d05eb4ecc0f63882 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 15 May 2025 19:45:01 +0200 Subject: [PATCH] fancydialogs: Refactor dialog body classes to use records --- .../fancydialogs/api/Dialog.java | 69 ------------------ .../fancydialogs/api/DialogData.java | 17 +++++ .../fancydialogs/api/body/DialogBody.java | 2 +- .../fancydialogs/api/body/ItemBody.java | 72 +++---------------- .../fancydialogs/api/body/TextBody.java | 28 ++------ 5 files changed, 30 insertions(+), 158 deletions(-) delete mode 100644 plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/Dialog.java create mode 100644 plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogData.java diff --git a/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/Dialog.java b/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/Dialog.java deleted file mode 100644 index 6367773d..00000000 --- a/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/Dialog.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.fancyinnovations.fancydialogs.api; - -import com.fancyinnovations.fancydialogs.api.body.DialogBody; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -public abstract class Dialog { - - private final @NotNull String id; - private @NotNull String title; - private @Nullable String externalTitle; - private boolean canCloseWithEscape; - private @NotNull List body; - - /** - * @param externalTitle if null, the title will be used - * @param canCloseWithEscape default is true - */ - public Dialog(@NotNull String id, @NotNull String title, @Nullable String externalTitle, @Nullable Boolean canCloseWithEscape, @NotNull List body) { - this.id = id; - this.title = title; - this.externalTitle = externalTitle == null ? title : externalTitle; - this.canCloseWithEscape = canCloseWithEscape == null || canCloseWithEscape; - this.body = body; - } - - abstract public void show(Player player); - - abstract public void close(Player player); - - public @NotNull String getId() { - return id; - } - - public @NotNull String getTitle() { - return title; - } - - public void setTitle(@NotNull String title) { - this.title = title; - } - - public @Nullable String getExternalTitle() { - return externalTitle; - } - - public void setExternalTitle(@Nullable String externalTitle) { - this.externalTitle = externalTitle; - } - - public boolean canCloseWithEscape() { - return canCloseWithEscape; - } - - public void setCanCloseWithEscape(boolean canCloseWithEscape) { - this.canCloseWithEscape = canCloseWithEscape; - } - - public @NotNull List getBody() { - return body; - } - - public void setBody(@NotNull List body) { - this.body = body; - } -} diff --git a/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogData.java b/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogData.java new file mode 100644 index 00000000..8e30f52b --- /dev/null +++ b/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogData.java @@ -0,0 +1,17 @@ +package com.fancyinnovations.fancydialogs.api; + +import com.fancyinnovations.fancydialogs.api.body.DialogBody; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public record DialogData( + @NotNull String id, + @NotNull String title, + @Nullable String externalTitle, + boolean canCloseWithEscape, + @NotNull List body +) { + +} diff --git a/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/DialogBody.java b/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/DialogBody.java index 8ec6ddc1..efd50b86 100644 --- a/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/DialogBody.java +++ b/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/DialogBody.java @@ -1,4 +1,4 @@ package com.fancyinnovations.fancydialogs.api.body; -public abstract class DialogBody { +public interface DialogBody { } diff --git a/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/ItemBody.java b/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/ItemBody.java index 8b1babaf..dbc060cb 100644 --- a/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/ItemBody.java +++ b/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/ItemBody.java @@ -4,69 +4,13 @@ import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class ItemBody extends DialogBody { +public record ItemBody( + @NotNull ItemStack item, + @Nullable TextBody description, + boolean showDecorations, + boolean showTooltip, + int width, + int height +) implements DialogBody { - private @NotNull ItemStack item; - private @Nullable TextBody description; - boolean showDecorations; - boolean showTooltip; - int width; - int height; - - public ItemBody(@NotNull ItemStack item, @Nullable TextBody description, boolean showDecorations, boolean showTooltip, int width, int height) { - this.item = item; - this.description = description; - this.showDecorations = showDecorations; - this.showTooltip = showTooltip; - this.width = width; - this.height = height; - } - - public @NotNull ItemStack getItem() { - return item; - } - - public void setItem(@NotNull ItemStack item) { - this.item = item; - } - - public @Nullable TextBody getDescription() { - return description; - } - - public void setDescription(@Nullable TextBody description) { - this.description = description; - } - - public boolean isShowDecorations() { - return showDecorations; - } - - public void setShowDecorations(boolean showDecorations) { - this.showDecorations = showDecorations; - } - - public boolean isShowTooltip() { - return showTooltip; - } - - public void setShowTooltip(boolean showTooltip) { - this.showTooltip = showTooltip; - } - - public int getWidth() { - return width; - } - - public void setWidth(int width) { - this.width = width; - } - - public int getHeight() { - return height; - } - - public void setHeight(int height) { - this.height = height; - } } diff --git a/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/TextBody.java b/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/TextBody.java index 8a670e93..6227f696 100644 --- a/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/TextBody.java +++ b/plugins/fancydialogs/api/src/main/java/com/fancyinnovations/fancydialogs/api/body/TextBody.java @@ -2,29 +2,9 @@ package com.fancyinnovations.fancydialogs.api.body; import org.jetbrains.annotations.NotNull; -public class TextBody extends DialogBody { +public record TextBody( + @NotNull String content, + int width +) implements DialogBody { - private @NotNull String content; - private int width; - - public TextBody(@NotNull String content, int width) { - this.content = content; - this.width = width; - } - - public @NotNull String getContent() { - return content; - } - - public void setContent(@NotNull String content) { - this.content = content; - } - - public int getWidth() { - return width; - } - - public void setWidth(int width) { - this.width = width; - } }