新增游戏内TUI配置系统界面

This commit is contained in:
zhangyuheng 2024-05-08 17:56:05 +08:00
parent d9a14af021
commit 21369533ea
4 changed files with 48 additions and 6 deletions

View File

@ -146,6 +146,9 @@ public class Commands implements TabExecutor {
case "export_mca":
Operator.exportMca(sender, args);
break;
case "config":
DominionConfig.show(sender, args);
break;
default:
return false;
}
@ -168,7 +171,7 @@ public class Commands implements TabExecutor {
@Override
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1) {
return Arrays.asList("menu", "help", "info", "manage", "flag_info", "group_list", "privilege_list", "group",
return Arrays.asList("menu", "help", "info", "manage", "flag_info", "privilege_list",
"create", "auto_create", "create_sub", "auto_create_sub", "expand", "contract", "delete", "set",
"create_privilege", "set_privilege", "clear_privilege", "list", "privilege_info",
"set_enter_msg",
@ -179,13 +182,15 @@ public class Commands implements TabExecutor {
"give",
"reload_cache",
"reload_config",
"export_mca"
"export_mca",
"config"
);
}
if (args.length == 2) {
switch (args[0]) {
case "help":
case "group":
case "list":
case "config":
return Collections.singletonList("页码(可选)");
case "create":
case "auto_create":

View File

@ -92,8 +92,13 @@ public class Apis {
.add(Line.create().append("重命名领地").append("/dominion rename <原领地名称> <新领地名称>"))
.add(Line.create().append("转让领地").append("/dominion give <领地名称> <玩家名称> [force]"))
.add(Line.create().append("删除领地").append("/dominion delete <领地名称> [force]"))
// 管理员指令
.add(Line.create().append("---[管理员指令]---"))
.add(Line.create().append("刷新缓存").append(Button.create("/dominion reload_cache", "/dominion reload_cache")))
.add(Line.create().append("重载配置").append(Button.create("/dominion reload_config", "/dominion reload_config")))
// 以下指令主要被用于 ui 触发
.add(Line.create().append("列出所有领地").append(Button.create("/dominion list", "/dominion list")))
.add(Line.create().append("---[以下主要用于UI触发]---"))
.add(Line.create().append("列出所有领地").append(Button.create("/dominion list [页码]", "/dominion list")))
.add(Line.create().append("查看领地信息").append(Button.create("/dominion info [领地名称]", "/dominion info")))
.add(Line.create().append("查看领地权限信息").append(Button.create("/dominion flag_info <领地名称> [页码]", "/dominion flag_info")))
.add(Line.create().append("设置领地权限").append("/dominion set <权限名称> <true/false> [领地名称]"))
@ -102,6 +107,7 @@ public class Apis {
.add(Line.create().append("重置玩家特权").append("/dominion clear_privilege <玩家名称> [领地名称]"))
.add(Line.create().append("查看领地玩家特权列表").append("/dominion privilege_list [领地名称] [页码]"))
.add(Line.create().append("查看玩家特权信息").append("/dominion privilege_info <玩家名称> [领地名称] [页码]"))
.add(Line.create().append("系统配置").append(Button.create("/dominion config [页码]", "/dominion config")))
.showOn(player, page);
}

View File

@ -0,0 +1,23 @@
package cn.lunadeer.dominion.tuis;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.ListView;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.tuis.Apis.getPage;
public class DominionConfig {
public static void show(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
int page = getPage(args);
ListView view = ListView.create(10, "/dominion config");
view.title("系统配置");
view.navigator(Line.create().append(Button.create("主菜单", "/dominion menu")).append("系统配置"));
// todo: add config items
view.showOn(player, page);
}
}

View File

@ -25,9 +25,15 @@ public class Menu {
.append(Component.text("[使用文档]", ViewStyles.action_color)
.clickEvent(ClickEvent.clickEvent(ClickEvent.Action.OPEN_URL, "https://ssl.lunadeer.cn:14448/doc/23/")))
.append("在浏览器中打开使用文档");
Line reload = Line.create()
Line config = Line.create()
.append(Button.create("系统配置", "/dominion config"))
.append("查看/修改系统配置");
Line reload_cache = Line.create()
.append(Button.create("重载缓存", "/dominion reload_cache"))
.append("手动刷新缓存可解决一些玩家操作无效问题,不建议频繁操作");
Line reload_config = Line.create()
.append(Button.create("重载配置", "/dominion reload_config"))
.append("重载配置文件");
ListView view = ListView.create(10, "/dominion");
view.title("Dominion 领地系统")
.navigator(Line.create().append("主菜单"))
@ -35,7 +41,9 @@ public class Menu {
.add(help)
.add(link);
if (player.isOp()) {
view.add(reload);
view.add(config);
view.add(reload_cache);
view.add(reload_config);
}
view.showOn(player, 1);
}