fancydialogs: Add default actions (close, message, open_dialog)

This commit is contained in:
Oliver
2025-06-19 12:55:24 +02:00
parent d3850310ce
commit bd4a8f2f23
4 changed files with 82 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}