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