mirror of
https://github.com/FancyInnovations/FancyPlugins.git
synced 2025-12-06 07:43:36 +00:00
fancydialogs: Add open_dialog action for FancyNpcs
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
|
||||
|
||||
@@ -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.");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user