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;
|
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.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
@@ -14,7 +18,9 @@ public class ActionRegistry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerDefaultActions() {
|
private void registerDefaultActions() {
|
||||||
|
registerAction("close", CloseDialogAction.INSTANCE);
|
||||||
|
registerAction("open_dialog", OpenDialogDialogAction.INSTANCE);
|
||||||
|
registerAction("message", MessageDialogAction.INSTANCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerAction(String actionId, DialogAction action) {
|
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