fancydialogs: Add open_dialog action for FancyNpcs

This commit is contained in:
Oliver
2025-06-15 19:18:32 +02:00
committed by Oliver
parent 6c155dc00b
commit 7e05693fb2
3 changed files with 44 additions and 0 deletions

View File

@@ -54,6 +54,7 @@ dependencies {
implementation("de.oliver.FancyAnalytics:api:0.1.6")
implementation("de.oliver.FancyAnalytics:logger:0.0.6")
compileOnly(project(":plugins:fancynpcs:fn-api"))
compileOnly("org.lushplugins:ChatColorHandler:5.1.3")
implementation("io.github.revxrsal:lamp.common:4.0.0-rc.12")
implementation("io.github.revxrsal:lamp.bukkit:4.0.0-rc.12")
@@ -72,6 +73,10 @@ paper {
apiVersion = "1.21"
load = BukkitPluginDescription.PluginLoadOrder.POSTWORLD
serverDependencies {
register("FancyNpcs") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("MiniPlaceholders") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE

View File

@@ -6,6 +6,7 @@ import com.fancyinnovations.fancydialogs.commands.TutorialCMD;
import com.fancyinnovations.fancydialogs.config.FDFeatureFlags;
import com.fancyinnovations.fancydialogs.config.FancyDialogsConfig;
import com.fancyinnovations.fancydialogs.dialog.DialogImpl;
import com.fancyinnovations.fancydialogs.fancynpcs.OpenDialogNpcAction;
import com.fancyinnovations.fancydialogs.listener.PlayerJoinListener;
import com.fancyinnovations.fancydialogs.registry.DefaultDialogs;
import com.fancyinnovations.fancydialogs.registry.DialogRegistry;
@@ -138,6 +139,9 @@ public class FancyDialogsPlugin extends JavaPlugin {
.build();
lamp.register(TutorialCMD.INSTANCE);
// FancyNpcs actions
new OpenDialogNpcAction().register();
fancyLogger.info("Successfully enabled FancyDialogs version %s".formatted(getDescription().getVersion()));
}

View File

@@ -0,0 +1,35 @@
package com.fancyinnovations.fancydialogs.fancynpcs;
import com.fancyinnovations.fancydialogs.FancyDialogsPlugin;
import com.fancyinnovations.fancydialogs.api.Dialog;
import de.oliver.fancynpcs.api.FancyNpcsPlugin;
import de.oliver.fancynpcs.api.actions.NpcAction;
import de.oliver.fancynpcs.api.actions.executor.ActionExecutionContext;
import org.bukkit.Bukkit;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class OpenDialogNpcAction extends NpcAction {
public OpenDialogNpcAction() {
super("open_dialog", true);
}
@Override
public void execute(@NotNull ActionExecutionContext context, @Nullable String value) {
Dialog dialog = FancyDialogsPlugin.get().getDialogRegistry().get(value);
if (dialog == null) {
FancyDialogsPlugin.get().getFancyLogger().warn("Dialog with ID '" + value + "' not found for NPC action 'open_dialog'.");
return;
}
dialog.open(context.getPlayer());
}
public void register() {
if (Bukkit.getPluginManager().isPluginEnabled("FancyNpcs")) {
FancyNpcsPlugin.get().getActionManager().registerAction(this);
FancyDialogsPlugin.get().getFancyLogger().info("Registered NPC action 'open_dialog' for FancyNpcs.");
}
}
}