diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/ActionRegistry.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/ActionRegistry.java index 4b25dcc0..06382b9c 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/ActionRegistry.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/ActionRegistry.java @@ -1,5 +1,9 @@ package com.fancyinnovations.fancydialogs.actions; +import com.fancyinnovations.fancydialogs.actions.defaultActions.CloseDialogAction; +import com.fancyinnovations.fancydialogs.actions.defaultActions.MessageDialogAction; +import com.fancyinnovations.fancydialogs.actions.defaultActions.OpenDialogDialogAction; + import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -14,7 +18,9 @@ public class ActionRegistry { } private void registerDefaultActions() { - + registerAction("close", CloseDialogAction.INSTANCE); + registerAction("open_dialog", OpenDialogDialogAction.INSTANCE); + registerAction("message", MessageDialogAction.INSTANCE); } public void registerAction(String actionId, DialogAction action) { diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/CloseDialogAction.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/CloseDialogAction.java new file mode 100644 index 00000000..db9f96d0 --- /dev/null +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/CloseDialogAction.java @@ -0,0 +1,19 @@ +package com.fancyinnovations.fancydialogs.actions.defaultActions; + +import com.fancyinnovations.fancydialogs.actions.DialogAction; +import com.fancyinnovations.fancydialogs.api.Dialog; +import org.bukkit.entity.Player; + +public class CloseDialogAction implements DialogAction { + + public static final CloseDialogAction INSTANCE = new CloseDialogAction(); + + private CloseDialogAction() { + } + + @Override + public void execute(Player player, Dialog dialog, String data) { + dialog.close(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 new file mode 100644 index 00000000..fc7eddd6 --- /dev/null +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/MessageDialogAction.java @@ -0,0 +1,26 @@ +package com.fancyinnovations.fancydialogs.actions.defaultActions; + +import com.fancyinnovations.fancydialogs.actions.DialogAction; +import com.fancyinnovations.fancydialogs.api.Dialog; +import net.kyori.adventure.text.Component; +import org.bukkit.entity.Player; +import org.lushplugins.chatcolorhandler.ModernChatColorHandler; + +public class MessageDialogAction implements DialogAction { + + public static final MessageDialogAction INSTANCE = new MessageDialogAction(); + + private MessageDialogAction() { + } + + @Override + public void execute(Player player, Dialog dialog, String data) { + if (data == null || data.isEmpty()) { + return; + } + + Component msg = ModernChatColorHandler.translate(data); + player.sendMessage(msg); + } + +} 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 new file mode 100644 index 00000000..32884f4f --- /dev/null +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/actions/defaultActions/OpenDialogDialogAction.java @@ -0,0 +1,30 @@ +package com.fancyinnovations.fancydialogs.actions.defaultActions; + +import com.fancyinnovations.fancydialogs.FancyDialogsPlugin; +import com.fancyinnovations.fancydialogs.actions.DialogAction; +import com.fancyinnovations.fancydialogs.api.Dialog; +import org.bukkit.entity.Player; + +public class OpenDialogDialogAction implements DialogAction { + + public static final OpenDialogDialogAction INSTANCE = new OpenDialogDialogAction(); + + private OpenDialogDialogAction() { + } + + @Override + public void execute(Player player, Dialog dialog, String data) { + if (data == null || data.isEmpty()) { + return; + } + + Dialog targetDialog = FancyDialogsPlugin.get().getDialogRegistry().get(data); + if (targetDialog == null) { + FancyDialogsPlugin.get().getFancyLogger().warn("Dialog with ID '" + data + "' not found."); + return; + } + + targetDialog.open(player); + } + +}