mirror of
https://github.com/FancyInnovations/FancyPlugins.git
synced 2025-12-06 07:43:36 +00:00
fancydialogs: Make dialog action registry accessible through api
This commit is contained in:
@@ -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 {
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
@@ -15,4 +15,6 @@ public interface FancyDialogs {
|
||||
|
||||
DialogRegistry getDialogRegistry();
|
||||
|
||||
DialogActionRegistry getDialogActionRegistry();
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<String, DialogAction> actions;
|
||||
|
||||
public ActionRegistry() {
|
||||
public ActionRegistryImpl() {
|
||||
this.actions = new ConcurrentHashMap<>();
|
||||
|
||||
registerDefaultActions();
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user