From 44761739a4a0da125efa1daec806e4a80031235d Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 27 Jun 2025 19:37:11 +0200 Subject: [PATCH] fancydialogs: Add quick actions command --- .../src/fancydialogs/commands/fancydialogs.md | 2 +- .../src/fancydialogs/commands/quickactions.md | 15 +++++++ .../fancydialogs/FancyDialogsPlugin.java | 2 + .../commands/QuickActionsCMD.java | 39 +++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 docs/src/fancydialogs/commands/quickactions.md create mode 100644 plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/commands/QuickActionsCMD.java diff --git a/docs/src/fancydialogs/commands/fancydialogs.md b/docs/src/fancydialogs/commands/fancydialogs.md index 4cbcd992..4c2b3a6e 100644 --- a/docs/src/fancydialogs/commands/fancydialogs.md +++ b/docs/src/fancydialogs/commands/fancydialogs.md @@ -1,6 +1,6 @@ --- icon: dot -order: 9 +order: 8 --- ![](../../static/commands.png) diff --git a/docs/src/fancydialogs/commands/quickactions.md b/docs/src/fancydialogs/commands/quickactions.md new file mode 100644 index 00000000..233d9688 --- /dev/null +++ b/docs/src/fancydialogs/commands/quickactions.md @@ -0,0 +1,15 @@ +--- +icon: dot +order: 9 +--- + +![](../../static/commands.png) + +# /QuickActions + +## Open the quick actions dialog + +Opens the quick actions dialog, which allows players to perform various actions quickly. + +- **Syntax**: `/quickactions` or `/qa` +- **Permissions**: `fancydialogs.commands.quickactions` \ No newline at end of file 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 97236acc..f27ebc4a 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java @@ -8,6 +8,7 @@ import com.fancyinnovations.fancydialogs.api.FancyDialogs; import com.fancyinnovations.fancydialogs.api.data.DialogData; import com.fancyinnovations.fancydialogs.commands.DialogCMD; import com.fancyinnovations.fancydialogs.commands.FancyDialogsCMD; +import com.fancyinnovations.fancydialogs.commands.QuickActionsCMD; import com.fancyinnovations.fancydialogs.commands.TutorialCMD; import com.fancyinnovations.fancydialogs.commands.types.DialogCommandType; import com.fancyinnovations.fancydialogs.config.FDFeatureFlags; @@ -222,6 +223,7 @@ public class FancyDialogsPlugin extends JavaPlugin implements FancyDialogs { Lamp lamp = lampBuilder.build(); lamp.register(FancyDialogsCMD.INSTANCE); + lamp.register(QuickActionsCMD.INSTANCE); lamp.register(DialogCMD.INSTANCE); lamp.register(TutorialCMD.INSTANCE); } diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/commands/QuickActionsCMD.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/commands/QuickActionsCMD.java new file mode 100644 index 00000000..b0cb5194 --- /dev/null +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/commands/QuickActionsCMD.java @@ -0,0 +1,39 @@ +package com.fancyinnovations.fancydialogs.commands; + +import com.fancyinnovations.fancydialogs.FancyDialogsPlugin; +import com.fancyinnovations.fancydialogs.api.Dialog; +import de.oliver.fancylib.translations.Translator; +import org.bukkit.entity.Player; +import revxrsal.commands.annotation.Command; +import revxrsal.commands.annotation.Description; +import revxrsal.commands.bukkit.annotation.CommandPermission; + +public final class QuickActionsCMD { + + public static final QuickActionsCMD INSTANCE = new QuickActionsCMD(); + + private final FancyDialogsPlugin plugin = FancyDialogsPlugin.get(); + private final Translator translator = FancyDialogsPlugin.get().getTranslator(); + + private QuickActionsCMD() { + } + + @Command({"quickactions", "qa"}) + @Description("Opens the quick actions menu") + @CommandPermission("fancydialogs.commands.quickactions") + public void onQuickActionsOpen( + final Player actor + ) { + String dialogID = plugin.getFancyDialogsConfig().getQuickActionsDialogID(); + Dialog dialog = plugin.getDialogRegistry().get(dialogID); + if (dialog == null) { + plugin.getFancyLogger().error("Quick Actions dialog with ID '" + dialogID + "' not found."); + translator.translate("dialog.not_found") + .replace("id", dialogID) + .send(actor); + return; + } + + dialog.open(actor); + } +}