From a3be8d71ce427d48ca640f0c9778dd419c862077 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 19 Jun 2025 16:57:20 +0200 Subject: [PATCH] fancydialogs: Make dialog registry accessible through api --- .../fancydialogs/api/DialogRegistry.java | 43 +++++++++++++++++++ .../fancydialogs/api/FancyDialogs.java | 2 + .../fancydialogs/FancyDialogsPlugin.java | 1 + .../fancydialogs/registry/DialogRegistry.java | 2 +- 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogRegistry.java diff --git a/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogRegistry.java b/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogRegistry.java new file mode 100644 index 00000000..ea9adf75 --- /dev/null +++ b/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogRegistry.java @@ -0,0 +1,43 @@ +package com.fancyinnovations.fancydialogs.api; + +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; + +public interface DialogRegistry { + + /** + * Registers a new dialog in the registry. + * + * @param dialog the dialog to register + */ + void register(@NotNull Dialog dialog); + + /** + * Unregisters a dialog from the registry. + * + * @param id the ID of the dialog to unregister + */ + void unregister(@NotNull String id); + + /** + * Retrieves a dialog by its ID. + * + * @param id the ID of the dialog to retrieve + * @return the dialog, or null if not found + */ + Dialog get(String id); + + /** + * Retrieves all registered dialogs. + * + * @return a collection of all registered dialogs + */ + Collection getAll(); + + /** + * Clears all registered dialogs. + */ + void clear(); + +} diff --git a/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/FancyDialogs.java b/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/FancyDialogs.java index 7b677164..326d1d30 100644 --- a/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/FancyDialogs.java +++ b/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/FancyDialogs.java @@ -13,4 +13,6 @@ public interface FancyDialogs { Dialog createDialog(DialogData data); + DialogRegistry getDialogRegistry(); + } diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java index 5b7b256c..a9f6e4a0 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java @@ -203,6 +203,7 @@ public class FancyDialogsPlugin extends JavaPlugin implements FancyDialogs { return fdConfig; } + @Override public DialogRegistry getDialogRegistry() { return dialogRegistry; } diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/registry/DialogRegistry.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/registry/DialogRegistry.java index fc86dab2..8a6c08d5 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/registry/DialogRegistry.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/registry/DialogRegistry.java @@ -7,7 +7,7 @@ import java.util.Collection; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -public class DialogRegistry { +public class DialogRegistry implements com.fancyinnovations.fancydialogs.api.DialogRegistry { private final Map dialogs;