diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/DialogAction.java b/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogAction.java similarity index 55% rename from plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/DialogAction.java rename to plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogAction.java index 9be28fe4..a7cdad6c 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/DialogAction.java +++ b/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogAction.java @@ -1,6 +1,5 @@ -package com.fancyinnovations.fancydialogs.actions; +package com.fancyinnovations.fancydialogs.api; -import com.fancyinnovations.fancydialogs.api.Dialog; import org.bukkit.entity.Player; public interface DialogAction { diff --git a/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogActionRegistry.java b/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogActionRegistry.java new file mode 100644 index 00000000..3d0614a7 --- /dev/null +++ b/plugins/fancydialogs/fd-api/src/main/java/com/fancyinnovations/fancydialogs/api/DialogActionRegistry.java @@ -0,0 +1,22 @@ +package com.fancyinnovations.fancydialogs.api; + +public interface DialogActionRegistry { + + /** + * Registers a dialog action with the given ID. + * + * @param actionId The unique identifier for the action. + * @param action The dialog action to register. + * @throws IllegalArgumentException if an action with the same ID is already registered. + */ + void registerAction(String actionId, DialogAction action); + + /** + * Retrieves a dialog action by its ID. + * + * @param actionId The unique identifier for the action. + * @return The dialog action associated with the given ID, or null if not found. + */ + DialogAction getAction(String actionId); + +} 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 326d1d30..b28458c5 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 @@ -15,4 +15,6 @@ public interface FancyDialogs { DialogRegistry getDialogRegistry(); + DialogActionRegistry getDialogActionRegistry(); + } 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 a9f6e4a0..2150b56f 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java @@ -1,7 +1,8 @@ package com.fancyinnovations.fancydialogs; -import com.fancyinnovations.fancydialogs.actions.ActionRegistry; +import com.fancyinnovations.fancydialogs.actions.ActionRegistryImpl; import com.fancyinnovations.fancydialogs.api.Dialog; +import com.fancyinnovations.fancydialogs.api.DialogActionRegistry; import com.fancyinnovations.fancydialogs.api.FancyDialogs; import com.fancyinnovations.fancydialogs.api.data.DialogData; import com.fancyinnovations.fancydialogs.commands.DialogCMD; @@ -50,7 +51,7 @@ public class FancyDialogsPlugin extends JavaPlugin implements FancyDialogs { private Translator translator; private DialogRegistry dialogRegistry; private DialogStorage dialogStorage; - private ActionRegistry actionRegistry; + private ActionRegistryImpl actionRegistry; public FancyDialogsPlugin() { INSTANCE = this; @@ -111,7 +112,7 @@ public class FancyDialogsPlugin extends JavaPlugin implements FancyDialogs { DefaultDialogs.registerDefaultDialogs(); - actionRegistry = new ActionRegistry(); + actionRegistry = new ActionRegistryImpl(); fancyLogger.info("Successfully loaded FancyDialogs version %s".formatted(getDescription().getVersion())); } @@ -208,11 +209,16 @@ public class FancyDialogsPlugin extends JavaPlugin implements FancyDialogs { return dialogRegistry; } + @Override + public DialogActionRegistry getDialogActionRegistry() { + return actionRegistry; + } + public DialogStorage getDialogStorage() { return dialogStorage; } - public ActionRegistry getActionRegistry() { + public ActionRegistryImpl getActionRegistry() { return actionRegistry; } } diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/ActionRegistry.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/ActionRegistryImpl.java similarity index 83% rename from plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/ActionRegistry.java rename to plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/ActionRegistryImpl.java index 1eb4a88d..6a784586 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/ActionRegistry.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/ActionRegistryImpl.java @@ -1,15 +1,17 @@ package com.fancyinnovations.fancydialogs.actions; import com.fancyinnovations.fancydialogs.actions.defaultActions.*; +import com.fancyinnovations.fancydialogs.api.DialogAction; +import com.fancyinnovations.fancydialogs.api.DialogActionRegistry; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -public class ActionRegistry { +public class ActionRegistryImpl implements DialogActionRegistry { private final Map actions; - public ActionRegistry() { + public ActionRegistryImpl() { this.actions = new ConcurrentHashMap<>(); registerDefaultActions(); diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/ConsoleCommandDialogAction.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/ConsoleCommandDialogAction.java index ac07ee5e..e53c4d2d 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/ConsoleCommandDialogAction.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/ConsoleCommandDialogAction.java @@ -1,8 +1,8 @@ package com.fancyinnovations.fancydialogs.actions.defaultActions; import com.fancyinnovations.fancydialogs.FancyDialogsPlugin; -import com.fancyinnovations.fancydialogs.actions.DialogAction; import com.fancyinnovations.fancydialogs.api.Dialog; +import com.fancyinnovations.fancydialogs.api.DialogAction; import org.bukkit.Bukkit; import org.bukkit.entity.Player; diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/MessageDialogAction.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/MessageDialogAction.java index 6fb68676..8423b1f4 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/MessageDialogAction.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/MessageDialogAction.java @@ -1,7 +1,7 @@ package com.fancyinnovations.fancydialogs.actions.defaultActions; -import com.fancyinnovations.fancydialogs.actions.DialogAction; import com.fancyinnovations.fancydialogs.api.Dialog; +import com.fancyinnovations.fancydialogs.api.DialogAction; import net.kyori.adventure.text.Component; import org.bukkit.entity.Player; import org.lushplugins.chatcolorhandler.ModernChatColorHandler; diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/OpenDialogDialogAction.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/OpenDialogDialogAction.java index 32884f4f..40d4ce9a 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/OpenDialogDialogAction.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/OpenDialogDialogAction.java @@ -1,8 +1,8 @@ package com.fancyinnovations.fancydialogs.actions.defaultActions; import com.fancyinnovations.fancydialogs.FancyDialogsPlugin; -import com.fancyinnovations.fancydialogs.actions.DialogAction; import com.fancyinnovations.fancydialogs.api.Dialog; +import com.fancyinnovations.fancydialogs.api.DialogAction; import org.bukkit.entity.Player; public class OpenDialogDialogAction implements DialogAction { diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/PlayerCommandDialogAction.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/PlayerCommandDialogAction.java index d6c00b13..61057b30 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/PlayerCommandDialogAction.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/PlayerCommandDialogAction.java @@ -1,8 +1,8 @@ package com.fancyinnovations.fancydialogs.actions.defaultActions; import com.fancyinnovations.fancydialogs.FancyDialogsPlugin; -import com.fancyinnovations.fancydialogs.actions.DialogAction; import com.fancyinnovations.fancydialogs.api.Dialog; +import com.fancyinnovations.fancydialogs.api.DialogAction; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.lushplugins.chatcolorhandler.ChatColorHandler; diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/SendToServerDialogAction.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/SendToServerDialogAction.java index 1e58826a..ea417bf2 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/SendToServerDialogAction.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/SendToServerDialogAction.java @@ -1,8 +1,8 @@ package com.fancyinnovations.fancydialogs.actions.defaultActions; import com.fancyinnovations.fancydialogs.FancyDialogsPlugin; -import com.fancyinnovations.fancydialogs.actions.DialogAction; import com.fancyinnovations.fancydialogs.api.Dialog; +import com.fancyinnovations.fancydialogs.api.DialogAction; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; import org.bukkit.entity.Player; diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/listener/CustomClickActionPacketListener.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/listener/CustomClickActionPacketListener.java index 259fec4f..ad36880b 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/listener/CustomClickActionPacketListener.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/listener/CustomClickActionPacketListener.java @@ -1,8 +1,8 @@ package com.fancyinnovations.fancydialogs.listener; import com.fancyinnovations.fancydialogs.FancyDialogsPlugin; -import com.fancyinnovations.fancydialogs.actions.DialogAction; import com.fancyinnovations.fancydialogs.api.Dialog; +import com.fancyinnovations.fancydialogs.api.DialogAction; import com.fancyinnovations.fancydialogs.api.data.DialogButton; import com.fancyinnovations.fancydialogs.api.events.DialogButtonClickedEvent; import de.oliver.fancysitula.api.packets.FS_ServerboundCustomClickActionPacket;