From 6a3188e696ed6e651f5a9438af2d6fe0344c95ec Mon Sep 17 00:00:00 2001 From: zhangyuheng Date: Sat, 25 May 2024 20:43:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95cui=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../java/cn/lunadeer/dominion/Commands.java | 4 +++ .../java/cn/lunadeer/dominion/Dominion.java | 5 +++ .../lunadeer/dominion/commands/OpenCUI.java | 36 +++++++++++++++++++ .../dominion/tuis/DominionManage.java | 4 +++ 5 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/main/java/cn/lunadeer/dominion/commands/OpenCUI.java diff --git a/pom.xml b/pom.xml index c392461..c86bc46 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.lunadeer Dominion - 1.26.3-beta + 1.27.0-beta jar Dominion diff --git a/src/main/java/cn/lunadeer/dominion/Commands.java b/src/main/java/cn/lunadeer/dominion/Commands.java index 108033d..b01cbad 100644 --- a/src/main/java/cn/lunadeer/dominion/Commands.java +++ b/src/main/java/cn/lunadeer/dominion/Commands.java @@ -149,6 +149,10 @@ public class Commands implements TabExecutor { case "set_config": SetConfig.handler(sender, args); break; + // ---=== CUI ===--- + case "cui_rename": + OpenCUI.RenameDominion(sender, args); + break; default: return false; } diff --git a/src/main/java/cn/lunadeer/dominion/Dominion.java b/src/main/java/cn/lunadeer/dominion/Dominion.java index b56bd57..93bfde1 100644 --- a/src/main/java/cn/lunadeer/dominion/Dominion.java +++ b/src/main/java/cn/lunadeer/dominion/Dominion.java @@ -6,6 +6,7 @@ import cn.lunadeer.dominion.events.SelectPointEvents; import cn.lunadeer.dominion.managers.ConfigManager; import cn.lunadeer.dominion.managers.DatabaseTables; import cn.lunadeer.minecraftpluginutils.*; +import cn.lunadeer.minecraftpluginutils.scui.CuiManager; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.plugin.java.JavaPlugin; @@ -58,6 +59,10 @@ public final class Dominion extends JavaPlugin { "Dominion"); } + // SCUI 初始化 + Bukkit.getPluginManager().registerEvents(new CuiManager(this), this); + CuiManager.instance.setDebug(config.isDebug()); + logger.info("领地插件已启动"); logger.info("版本:" + this.getPluginMeta().getVersion()); // http://patorjk.com/software/taag/#p=display&f=Big&t=Dominion diff --git a/src/main/java/cn/lunadeer/dominion/commands/OpenCUI.java b/src/main/java/cn/lunadeer/dominion/commands/OpenCUI.java new file mode 100644 index 0000000..acd080b --- /dev/null +++ b/src/main/java/cn/lunadeer/dominion/commands/OpenCUI.java @@ -0,0 +1,36 @@ +package cn.lunadeer.dominion.commands; + +import cn.lunadeer.dominion.Dominion; +import cn.lunadeer.dominion.controllers.DominionController; +import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import static cn.lunadeer.dominion.commands.Apis.playerOnly; + +public class OpenCUI { + private static class renameDominionCB implements CuiTextInput.InputCallback { + + private final Player sender; + private final String oldName; + + public renameDominionCB(Player sender, String oldName) { + this.sender = sender; + this.oldName = oldName; + } + + @Override + public void run(String input) { + Dominion.logger.debug("renameDominionCB.run: %s", input); + DominionController.rename(sender, oldName, input); + } + } + + public static void RenameDominion(CommandSender sender, String[] args) { + Player player = playerOnly(sender); + if (player == null) return; + CuiTextInput.InputCallback renameDominionCB = new renameDominionCB(player, args[1]); + CuiTextInput view = CuiTextInput.create(renameDominionCB).setText(args[1]).title("领地重命名"); + view.open(player); + } +} diff --git a/src/main/java/cn/lunadeer/dominion/tuis/DominionManage.java b/src/main/java/cn/lunadeer/dominion/tuis/DominionManage.java index 90d1c3d..c250fa8 100644 --- a/src/main/java/cn/lunadeer/dominion/tuis/DominionManage.java +++ b/src/main/java/cn/lunadeer/dominion/tuis/DominionManage.java @@ -34,6 +34,9 @@ public class DominionManage { Line set_tp = Line.create() .append(Button.create("设置传送点").setExecuteCommand("/dominion set_tp_location " + dominion.getName()).build()) .append("设置当前位置为此领地传送点"); + Line rename = Line.create() + .append(Button.create("重命名").setExecuteCommand("/dominion cui_rename " + dominion.getName()).build()) + .append("重命名领地"); ListView view = ListView.create(10, "/dominion manage " + dominion.getName()); view.title("领地 " + dominion.getName() + " 管理界面") .navigator(Line.create() @@ -44,6 +47,7 @@ public class DominionManage { .add(flag_info) .add(privilege_list) .add(set_tp) + .add(rename) .showOn(player, 1); } }