重构部分CUI结构

This commit is contained in:
zhangyuheng 2024-06-29 12:41:55 +08:00
parent aa30f178de
commit f4b234928a
33 changed files with 171 additions and 176 deletions

View File

@ -6,7 +6,7 @@
<groupId>cn.lunadeer</groupId>
<artifactId>Dominion</artifactId>
<version>1.34.1-beta</version>
<version>1.34.2-beta</version>
<packaging>jar</packaging>
<name>Dominion</name>

View File

@ -6,6 +6,18 @@ import cn.lunadeer.dominion.cuis.*;
import cn.lunadeer.dominion.dtos.PlayerDTO;
import cn.lunadeer.dominion.tuis.*;
import cn.lunadeer.dominion.tuis.MigrateList;
import cn.lunadeer.dominion.tuis.dominion.DominionManage;
import cn.lunadeer.dominion.tuis.dominion.DominionList;
import cn.lunadeer.dominion.tuis.dominion.manage.*;
import cn.lunadeer.dominion.tuis.dominion.manage.group.GroupList;
import cn.lunadeer.dominion.tuis.dominion.manage.group.GroupSetting;
import cn.lunadeer.dominion.tuis.dominion.manage.group.SelectMember;
import cn.lunadeer.dominion.tuis.dominion.manage.member.MemberList;
import cn.lunadeer.dominion.tuis.dominion.manage.member.MemberSetting;
import cn.lunadeer.dominion.tuis.dominion.manage.member.SelectPlayer;
import cn.lunadeer.dominion.tuis.dominion.manage.member.SelectTemplate;
import cn.lunadeer.dominion.tuis.template.TemplateList;
import cn.lunadeer.dominion.tuis.template.TemplateManage;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
@ -20,24 +32,6 @@ import java.util.List;
import static cn.lunadeer.dominion.commands.Helper.*;
public class Commands implements TabExecutor {
/*
创建领地 /dominion create <领地名称>
自动创建领地 /dominion auto_create <领地名称>
创建子领地 /dominion create_sub <子领地名称> [父领地名称]
自动创建子领地 /dominion auto_create_sub <子领地名称> [父领地名称]
扩张领地 /dominion expand [大小] [领地名称]
缩小领地 /dominion contract [大小] [领地名称]
删除领地 /dominion delete <领地名称> [force]
设置领地权限 /dominion set <权限名称> <true/false> [领地名称]
设置玩家权限 /dominion set_privilege <玩家名称> <权限名称> <true/false> [领地名称]
重置玩家权限 /dominion clear_privilege <玩家名称> [领地名称]
创建权限组 /dominion create_group <权限组名称>
删除权限组 /dominion delete_group <权限组名称>
设置权限组权限 /dominion set_group <权限组名称> <权限名称> <true/false>
设置玩家在某个领地归属的权限组 /dominion add_player <玩家名称> <权限组名称> [领地名称]
删除玩家在某个领地归属的权限组 /dominion remove_player <玩家名称> <权限组名称> [领地名称]
*/
/**
* Executes the given command, returning its success.
@ -62,19 +56,19 @@ public class Commands implements TabExecutor {
Menu.show(sender, args);
break;
case "list":
ListDominion.show(sender, args);
DominionList.show(sender, args);
break;
case "help":
cn.lunadeer.dominion.tuis.Apis.printHelp(sender, args);
break;
case "info":
DominionSizeInfo.show(sender, args);
SizeInfo.show(sender, args);
break;
case "manage":
DominionManage.show(sender, args);
break;
case "flag_info":
DominionFlagInfo.show(sender, args);
case "guest_setting":
GuestSetting.show(sender, args);
break;
case "create":
DominionOperate.createDominion(sender, args);
@ -109,11 +103,11 @@ public class Commands implements TabExecutor {
case "clear_privilege":
PlayerPrivilege.clearPlayerPrivilege(sender, args);
break;
case "privilege_list":
DominionPrivilegeList.show(sender, args);
case "member_list":
MemberList.show(sender, args);
break;
case "privilege_info":
PrivilegeInfo.show(sender, args);
case "member_setting":
MemberSetting.show(sender, args);
break;
case "select_player_create_privilege":
SelectPlayer.show(sender, args);
@ -145,8 +139,8 @@ public class Commands implements TabExecutor {
case "export_mca":
Operator.exportMca(sender, args);
break;
case "config":
DominionConfig.show(sender, args);
case "sys_config":
SysConfig.show(sender, args);
break;
case "set_config":
SetConfig.handler(sender, args);
@ -184,8 +178,8 @@ public class Commands implements TabExecutor {
case "set_map_color":
DominionOperate.setMapColor(sender, args);
break;
case "env_info":
DominionEnvInfo.show(sender, args);
case "env_setting":
EnvSetting.show(sender, args);
break;
case "create_group":
Group.createGroup(sender, args);
@ -206,13 +200,13 @@ public class Commands implements TabExecutor {
Group.removeMember(sender, args);
break;
case "group_list":
DominionGroupList.show(sender, args);
GroupList.show(sender, args);
break;
case "select_member_add_group":
SelectMember.show(sender, args);
break;
case "group_manage":
GroupManage.show(sender, args);
case "group_setting":
GroupSetting.show(sender, args);
break;
// ---=== CUI ===---
case "cui_rename":
@ -264,9 +258,9 @@ 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", "privilege_list",
return Arrays.asList("menu", "help", "info", "manage", "guest_setting", "member_list",
"create", "auto_create", "create_sub", "auto_create_sub", "expand", "contract", "delete", "set",
"create_privilege", "set_privilege", "clear_privilege", "list", "privilege_info",
"create_privilege", "set_privilege", "clear_privilege", "list", "member_setting",
"set_enter_msg",
"set_leave_msg",
"set_tp_location",
@ -276,7 +270,7 @@ public class Commands implements TabExecutor {
"reload_cache",
"reload_config",
"export_mca",
"config",
"sys_config",
"apply_template",
"template_list",
"template_manage",
@ -292,7 +286,7 @@ public class Commands implements TabExecutor {
switch (args[0]) {
case "help":
case "list":
case "config":
case "sys_config":
case "template_list":
return Collections.singletonList("页码(可选)");
case "create":
@ -301,8 +295,8 @@ public class Commands implements TabExecutor {
case "delete":
case "info":
case "manage":
case "flag_info":
case "privilege_list":
case "guest_setting":
case "member_list":
case "rename":
case "give":
case "set_tp_location":
@ -320,7 +314,7 @@ public class Commands implements TabExecutor {
case "create_privilege":
case "set_privilege":
case "clear_privilege":
case "privilege_info":
case "member_setting":
case "apply_template":
return playerNames();
case "expand":
@ -354,7 +348,7 @@ public class Commands implements TabExecutor {
case "contract":
case "clear_privilege":
case "create_privilege":
case "privilege_info":
case "member_setting":
case "auto_create_sub":
case "create_sub":
case "set_enter_msg":

View File

@ -3,8 +3,8 @@ package cn.lunadeer.dominion.commands;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.FlagsController;
import cn.lunadeer.dominion.dtos.Flag;
import cn.lunadeer.dominion.tuis.DominionEnvInfo;
import cn.lunadeer.dominion.tuis.DominionFlagInfo;
import cn.lunadeer.dominion.tuis.dominion.manage.EnvSetting;
import cn.lunadeer.dominion.tuis.dominion.manage.GuestSetting;
import cn.lunadeer.minecraftpluginutils.Notification;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -35,9 +35,9 @@ public class DominionFlag {
newArgs[1] = args[3];
newArgs[2] = args[4];
if (Flag.isDominionOnlyFlag(args[1])) {
DominionEnvInfo.show(sender, newArgs);
EnvSetting.show(sender, newArgs);
} else {
DominionFlagInfo.show(sender, newArgs);
GuestSetting.show(sender, newArgs);
}
} else {

View File

@ -2,8 +2,8 @@ package cn.lunadeer.dominion.commands;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.GroupController;
import cn.lunadeer.dominion.tuis.DominionGroupList;
import cn.lunadeer.dominion.tuis.GroupManage;
import cn.lunadeer.dominion.tuis.dominion.manage.group.GroupList;
import cn.lunadeer.dominion.tuis.dominion.manage.group.GroupSetting;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -31,7 +31,7 @@ public class Group {
String[] newArgs = new String[2];
newArgs[0] = "group_list";
newArgs[1] = dominionName;
DominionGroupList.show(sender, newArgs);
GroupList.show(sender, newArgs);
}
/**
@ -53,7 +53,7 @@ public class Group {
String[] newArgs = new String[2];
newArgs[0] = "group_list";
newArgs[1] = dominionName;
DominionGroupList.show(sender, newArgs);
GroupList.show(sender, newArgs);
}
/**
@ -77,7 +77,7 @@ public class Group {
newArgs[0] = "group_manage";
newArgs[1] = dominionName;
newArgs[2] = newGroupName;
GroupManage.show(sender, newArgs);
GroupSetting.show(sender, newArgs);
}
/**
@ -103,7 +103,7 @@ public class Group {
newArgs[1] = dominionName;
newArgs[2] = groupName;
newArgs[3] = String.valueOf(getPage(args, 5));
GroupManage.show(sender, newArgs);
GroupSetting.show(sender, newArgs);
}
/**
@ -127,7 +127,7 @@ public class Group {
newArgs[0] = "group_list";
newArgs[1] = dominionName;
newArgs[2] = String.valueOf(getPage(args, 4));
DominionGroupList.show(sender, newArgs);
GroupList.show(sender, newArgs);
}
/**
@ -151,7 +151,7 @@ public class Group {
newArgs[0] = "group_list";
newArgs[1] = dominionName;
newArgs[2] = String.valueOf(getPage(args, 4));
DominionGroupList.show(sender, newArgs);
GroupList.show(sender, newArgs);
}
}

View File

@ -2,8 +2,8 @@ package cn.lunadeer.dominion.commands;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.PrivilegeController;
import cn.lunadeer.dominion.tuis.DominionPrivilegeList;
import cn.lunadeer.dominion.tuis.PrivilegeInfo;
import cn.lunadeer.dominion.tuis.dominion.manage.member.MemberList;
import cn.lunadeer.dominion.tuis.dominion.manage.member.MemberSetting;
import cn.lunadeer.minecraftpluginutils.Notification;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -37,7 +37,7 @@ public class PlayerPrivilege {
String[] newArgs = new String[2];
newArgs[0] = "privilege_list";
newArgs[1] = args[2];
DominionPrivilegeList.show(sender, newArgs);
MemberList.show(sender, newArgs);
}
}
@ -63,7 +63,7 @@ public class PlayerPrivilege {
newArgs[1] = args[1];
newArgs[2] = args[4];
newArgs[3] = args[5];
PrivilegeInfo.show(sender, newArgs);
MemberSetting.show(sender, newArgs);
} else {
Notification.error(sender, "用法: /dominion set_privilege <玩家名称> <权限名称> <true/false> [领地名称]");
}
@ -93,7 +93,7 @@ public class PlayerPrivilege {
String[] newArgs = new String[3];
newArgs[0] = "privilege_list";
newArgs[1] = args[2];
DominionPrivilegeList.show(sender, newArgs);
MemberList.show(sender, newArgs);
}
}
@ -116,13 +116,11 @@ public class PlayerPrivilege {
String dominionName = args[2];
String templateName = args[3];
PrivilegeController.applyTemplate(operator, dominionName, playerName, templateName);
if (args.length == 5) {
String[] newArgs = new String[3];
newArgs[0] = "privilege_info";
newArgs[1] = playerName;
newArgs[2] = dominionName;
DominionPrivilegeList.show(sender, newArgs);
}
String[] newArgs = new String[3];
newArgs[0] = "member_setting";
newArgs[1] = playerName;
newArgs[2] = dominionName;
MemberSetting.show(sender, newArgs);
}
}

View File

@ -1,7 +1,7 @@
package cn.lunadeer.dominion.commands;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.tuis.DominionConfig;
import cn.lunadeer.dominion.tuis.SysConfig;
import cn.lunadeer.minecraftpluginutils.Notification;
import org.bukkit.command.CommandSender;
@ -81,7 +81,7 @@ public class SetConfig {
String[] newArgs = new String[2];
newArgs[0] = "config";
newArgs[1] = String.valueOf(page);
DominionConfig.show(sender, newArgs);
SysConfig.show(sender, newArgs);
}
}

View File

@ -2,8 +2,8 @@ package cn.lunadeer.dominion.commands;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.TemplateController;
import cn.lunadeer.dominion.tuis.TemplateList;
import cn.lunadeer.dominion.tuis.TemplateManage;
import cn.lunadeer.dominion.tuis.template.TemplateList;
import cn.lunadeer.dominion.tuis.template.TemplateManage;
import cn.lunadeer.minecraftpluginutils.Notification;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

View File

@ -4,7 +4,7 @@ import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.controllers.AbstractOperator;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.DominionController;
import cn.lunadeer.dominion.tuis.DominionManage;
import cn.lunadeer.dominion.tuis.dominion.DominionManage;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.XLogger;
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;

View File

@ -3,7 +3,7 @@ package cn.lunadeer.dominion.cuis;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.GroupController;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.tuis.DominionGroupList;
import cn.lunadeer.dominion.tuis.dominion.manage.group.GroupList;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.XLogger;
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;
@ -32,7 +32,7 @@ public class CreateGroup {
String[] newArgs = new String[2];
newArgs[0] = "group_list";
newArgs[1] = dominionName;
DominionGroupList.show(sender, newArgs);
GroupList.show(sender, newArgs);
}
}

View File

@ -4,8 +4,8 @@ import cn.lunadeer.dominion.controllers.AbstractOperator;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.PrivilegeController;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.tuis.DominionPrivilegeList;
import cn.lunadeer.dominion.tuis.SelectPlayer;
import cn.lunadeer.dominion.tuis.dominion.manage.member.MemberList;
import cn.lunadeer.dominion.tuis.dominion.manage.member.SelectPlayer;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.XLogger;
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;
@ -33,7 +33,7 @@ public class CreatePrivilege {
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
operator.getResponse().thenAccept(result -> {
if (Objects.equals(result.getStatus(), AbstractOperator.Result.SUCCESS)){
DominionPrivilegeList.show(sender, new String[]{"privilege_list", dominionName});
MemberList.show(sender, new String[]{"privilege_list", dominionName});
} else {
SelectPlayer.show(sender, new String[]{"select_player_create_privilege", dominionName});
}

View File

@ -2,7 +2,7 @@ package cn.lunadeer.dominion.cuis;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.TemplateController;
import cn.lunadeer.dominion.tuis.TemplateList;
import cn.lunadeer.dominion.tuis.template.TemplateList;
import cn.lunadeer.minecraftpluginutils.XLogger;
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;
import org.bukkit.command.CommandSender;

View File

@ -3,7 +3,7 @@ package cn.lunadeer.dominion.cuis;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.DominionController;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.tuis.DominionManage;
import cn.lunadeer.dominion.tuis.dominion.DominionManage;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.XLogger;
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;

View File

@ -3,7 +3,7 @@ package cn.lunadeer.dominion.cuis;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.DominionController;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.tuis.DominionManage;
import cn.lunadeer.dominion.tuis.dominion.DominionManage;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.XLogger;
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;

View File

@ -2,7 +2,7 @@ package cn.lunadeer.dominion.cuis;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.DominionController;
import cn.lunadeer.dominion.tuis.DominionManage;
import cn.lunadeer.dominion.tuis.dominion.DominionManage;
import cn.lunadeer.minecraftpluginutils.XLogger;
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;
import org.bukkit.command.CommandSender;

View File

@ -3,8 +3,7 @@ package cn.lunadeer.dominion.cuis;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.GroupController;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.tuis.DominionGroupList;
import cn.lunadeer.dominion.tuis.GroupManage;
import cn.lunadeer.dominion.tuis.dominion.manage.group.GroupSetting;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.XLogger;
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;
@ -36,7 +35,7 @@ public class RenameGroup {
newArgs[0] = "group_manage";
newArgs[1] = dominionName;
newArgs[2] = input;
GroupManage.show(sender, newArgs);
GroupSetting.show(sender, newArgs);
}
}

View File

@ -3,7 +3,7 @@ package cn.lunadeer.dominion.cuis;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.controllers.DominionController;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.tuis.DominionManage;
import cn.lunadeer.dominion.tuis.dominion.DominionManage;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.XLogger;
import cn.lunadeer.minecraftpluginutils.scui.CuiTextInput;

View File

@ -169,7 +169,7 @@ public class PlayerPrivilegeDTO {
public PlayerPrivilegeDTO applyTemplate(PrivilegeTemplateDTO template) {
this.admin.value = template.getAdmin();
UpdateRow updateRow = new UpdateRow().field(new Field("admin", admin));
UpdateRow updateRow = new UpdateRow().field(admin);
for (Flag f : Flag.getPrivilegeFlagsEnabled()) {
this.flags.put(f, template.getFlagValue(f));
updateRow.field(new Field(f.getFlagName(), template.getFlagValue(f)));

View File

@ -13,7 +13,7 @@ import java.util.List;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.tuis.Apis.getPage;
import static cn.lunadeer.dominion.tuis.Apis.notOp;
import static cn.lunadeer.dominion.tuis.ListDominion.BuildTreeLines;
import static cn.lunadeer.dominion.tuis.dominion.DominionList.BuildTreeLines;
public class AllDominion {

View File

@ -15,13 +15,13 @@ import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.tuis.Apis.getPage;
import static cn.lunadeer.dominion.tuis.Apis.notOp;
public class DominionConfig {
public class SysConfig {
public static void show(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
if (notOp(player)) return;
int page = getPage(args);
ListView view = ListView.create(10, "/dominion config");
ListView view = ListView.create(10, "/dominion sys_config");
view.title("系统配置");
view.navigator(Line.create().append(Button.create("主菜单").setExecuteCommand("/dominion menu").build()).append("系统配置"));

View File

@ -1,4 +1,4 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion;
import cn.lunadeer.dominion.Cache;
import cn.lunadeer.dominion.DominionNode;
@ -18,7 +18,7 @@ import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.commands.Helper.playerAdminDominions;
import static cn.lunadeer.dominion.tuis.Apis.getPage;
public class ListDominion {
public class DominionList {
public static void show(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;

View File

@ -1,7 +1,8 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.tuis.Apis;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
@ -30,13 +31,13 @@ public class DominionManage {
.append(Button.create("详细信息").setExecuteCommand("/dominion info " + dominion.getName()).build())
.append("查看领地详细信息");
Line env_info = Line.create()
.append(Button.create("环境设置").setExecuteCommand("/dominion env_info " + dominion.getName()).build())
.append(Button.create("环境设置").setExecuteCommand("/dominion env_setting " + dominion.getName()).build())
.append("设置领地内的一些非玩家相关效果");
Line flag_info = Line.create()
.append(Button.create("访客权限").setExecuteCommand("/dominion flag_info " + dominion.getName()).build())
.append(Button.create("访客权限").setExecuteCommand("/dominion guest_setting " + dominion.getName()).build())
.append("访客在此领地的权限");
Line privilege_list = Line.create()
.append(Button.create("成员管理").setExecuteCommand("/dominion privilege_list " + dominion.getName()).build())
.append(Button.create("成员管理").setExecuteCommand("/dominion member_list " + dominion.getName()).build())
.append("管理此领地成员的权限");
Line group_list = Line.create()
.append(Button.create("权限组").setExecuteCommand("/dominion group_list " + dominion.getName()).build())

View File

@ -1,4 +1,4 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion.manage;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.Flag;
@ -11,29 +11,24 @@ 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 DominionEnvInfo {
public class EnvSetting {
public static void show(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
if (args.length < 2) {
Notification.error(sender, "用法: /dominion env_info <领地名称> [页码]");
Notification.error(sender, "用法: /dominion env_setting <领地名称> [页码]");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
DominionDTO dominion = DominionDTO.select(args[1]);
if (dominion == null) {
Notification.error(sender, "领地 %s 不存在", args[1]);
return;
}
int page = 1;
if (args.length == 3) {
try {
page = Integer.parseInt(args[2]);
} catch (Exception ignored) {
}
}
ListView view = ListView.create(10, "/dominion env_info " + dominion.getName());
int page = getPage(args, 2);
ListView view = ListView.create(10, "/dominion env_setting " + dominion.getName());
view.title("领地 " + dominion.getName() + " 环境设置")
.navigator(Line.create()
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())

View File

@ -1,4 +1,4 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion.manage;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.Flag;
@ -11,29 +11,24 @@ 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 DominionFlagInfo {
public class GuestSetting {
public static void show(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
if (args.length < 2) {
Notification.error(sender, "用法: /dominion flag_info <领地名称> [页码]");
Notification.error(sender, "用法: /dominion guest_setting <领地名称> [页码]");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
DominionDTO dominion = DominionDTO.select(args[1]);
if (dominion == null) {
Notification.error(sender, "领地 %s 不存在", args[1]);
return;
}
int page = 1;
if (args.length == 3) {
try {
page = Integer.parseInt(args[2]);
} catch (Exception ignored) {
}
}
ListView view = ListView.create(10, "/dominion flag_info " + dominion.getName());
int page = getPage(args, 2);
ListView view = ListView.create(10, "/dominion guest_setting " + dominion.getName());
view.title("领地 " + dominion.getName() + " 访客权限")
.navigator(Line.create()
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())

View File

@ -1,4 +1,4 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion.manage;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.controllers.PlayerController;
@ -15,7 +15,7 @@ import org.bukkit.entity.Player;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.tuis.Apis.getDominionNameArg_1;
public class DominionSizeInfo {
public class SizeInfo {
public static void show(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
@ -47,7 +47,7 @@ public class DominionSizeInfo {
))
.actionBar(Line.create()
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
.append(Button.create("权限列表").setExecuteCommand("/dominion flag_info " + dominion.getName()).build()))
.append(Button.create("访客权限").setExecuteCommand("/dominion guest_setting " + dominion.getName()).build()))
.showOn(player);
ParticleRender.showBoxFace(Dominion.instance, player,
dominion.getLocation1(),

View File

@ -1,10 +1,12 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion.manage.group;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.GroupDTO;
import cn.lunadeer.dominion.dtos.PlayerDTO;
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
import cn.lunadeer.dominion.tuis.Apis;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.XLogger;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
@ -14,17 +16,20 @@ import org.bukkit.entity.Player;
import java.util.List;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.tuis.Apis.getDominionNameArg_1;
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
public class DominionGroupList {
public class GroupList {
public static void show(CommandSender sender, String[] args) {
if (args.length < 2) {
Notification.error(sender, "用法: /dominion group_list <领地名称> [页码]");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
DominionDTO dominion = getDominionNameArg_1(player, args);
DominionDTO dominion = DominionDTO.select(args[1]);
if (dominion == null) {
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion group_list <领地名称>");
Notification.error(sender, "领地 %s 不存在", args[1]);
return;
}
if (noAuthToManage(player, dominion)) return;
@ -52,13 +57,14 @@ public class DominionGroupList {
.setExecuteCommand("/dominion delete_group " + dominion.getName() + " " + group.getName());
Button edit = Button.create("编辑")
.setHoverText("编辑权限组 " + group.getName())
.setExecuteCommand("/dominion group_manage " + dominion.getName() + " " + group.getName());
.setExecuteCommand("/dominion group_setting " + dominion.getName() + " " + group.getName());
Button add = Button.createGreen("+")
.setHoverText("添加成员到权限组 " + group.getName())
.setExecuteCommand("/dominion select_member_add_group " + dominion.getName() + " " + group.getName() + " " + page);
line.append(del.build()).append(edit.build()).append(group.getName()).append(add.build());
view.add(line);
List<PlayerPrivilegeDTO> players = PlayerPrivilegeDTO.selectByGroupId(group.getId());
XLogger.debug("players: " + players.size());
for (PlayerPrivilegeDTO playerPrivilege : players) {
PlayerDTO p = PlayerDTO.select(playerPrivilege.getPlayerUUID());
if (p == null) continue;
@ -67,6 +73,7 @@ public class DominionGroupList {
.setExecuteCommand("/dominion group_remove_member " + dominion.getName() + " " + group.getName() + " " + p.getLastKnownName() + " " + page);
Line playerLine = new Line();
playerLine.append(remove.build()).append(" | " + p.getLastKnownName());
view.add(playerLine);
}
}
view.showOn(player, page);

View File

@ -1,8 +1,9 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion.manage.group;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.Flag;
import cn.lunadeer.dominion.dtos.GroupDTO;
import cn.lunadeer.dominion.tuis.Apis;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
@ -14,9 +15,10 @@ import org.bukkit.entity.Player;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
public class GroupManage {
public class GroupSetting {
public static void show(CommandSender sender, String[] args) {
if (args.length < 3) {
Notification.error(sender, "用法: /dominion group_setting <领地名称> <权限组名称> [页码]");
return;
}
Player player = playerOnly(sender);
@ -34,7 +36,7 @@ public class GroupManage {
return;
}
ListView view = ListView.create(10, "/dominion group_manage " + dominion.getName() + " " + group.getName());
ListView view = ListView.create(10, "/dominion group_setting " + dominion.getName() + " " + group.getName());
view.title("权限组 " + group.getName() + " 管理");
view.navigator(
Line.create()

View File

@ -1,4 +1,4 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion.manage.group;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.GroupDTO;
@ -19,11 +19,12 @@ import static cn.lunadeer.dominion.tuis.Apis.*;
public class SelectMember {
public static void show(CommandSender sender, String[] args) {
if (args.length < 3) {
Notification.error(sender, "用法: /dominion select_member_add_group <领地名称> <权限组名称> [页码]");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
DominionDTO dominion = getDominionNameArg_1(player, args);
DominionDTO dominion = DominionDTO.select(args[1]);
if (dominion == null) {
Notification.error(sender, "领地不存在");
return;

View File

@ -1,4 +1,4 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion.manage.member;
import cn.lunadeer.dominion.Cache;
import cn.lunadeer.dominion.dtos.*;
@ -16,27 +16,24 @@ import org.bukkit.entity.Player;
import java.util.List;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.tuis.Apis.getDominionNameArg_1;
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
import static cn.lunadeer.dominion.tuis.Apis.*;
public class DominionPrivilegeList {
public class MemberList {
public static void show(CommandSender sender, String[] args) {
int page = 1;
if (args.length == 3) {
try {
page = Integer.parseInt(args[2]);
} catch (Exception ignored) {
}
if (args.length < 2) {
Notification.error(sender, "用法: /dominion member_list <领地名称> [页码]");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
DominionDTO dominion = getDominionNameArg_1(player, args);
DominionDTO dominion = DominionDTO.select(args[1]);
if (dominion == null) {
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion privilege_list <领地名称>");
Notification.error(sender, "领地 %s 不存在", args[1]);
return;
}
ListView view = ListView.create(10, "/dominion privilege_list " + dominion.getName());
int page = getPage(args, 2);
ListView view = ListView.create(10, "/dominion member_list " + dominion.getName());
if (noAuthToManage(player, dominion)) return;
List<PlayerPrivilegeDTO> privileges = PlayerPrivilegeDTO.select(dominion.getId());
view.title("领地 " + dominion.getName() + " 成员列表");
@ -68,7 +65,7 @@ public class DominionPrivilegeList {
Button prev = Button.createGreen("权限")
.setHoverText("配置成员权限")
.setExecuteCommand("/dominion privilege_info " + p_player.getLastKnownName() + " " + dominion.getName());
.setExecuteCommand("/dominion member_setting " + p_player.getLastKnownName() + " " + dominion.getName());
Button remove = Button.createRed("移除")
.setHoverText("将此成员移出(变为访客)")
.setExecuteCommand("/dominion clear_privilege " + p_player.getLastKnownName() + " " + dominion.getName() + " b");

View File

@ -1,4 +1,4 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion.manage.member;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.Flag;
@ -15,19 +15,23 @@ import org.bukkit.entity.Player;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.tuis.Apis.*;
public class PrivilegeInfo {
// /dominion privilege_info <玩家名称> [领地名称] [页码]
public class MemberSetting {
// /dominion member_setting <玩家名称> [领地名称] [页码]
public static void show(CommandSender sender, String[] args) {
if (args.length < 2) {
Notification.error(sender, "用法: /dominion member_setting <玩家名称> [领地名称] [页码]");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
DominionDTO dominion = getDominionNameArg_2(player, args);
int page = getPage(args, 3);
String playerName = args[1];
if (dominion == null) {
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion privilege_info <玩家名称> [领地名称]");
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion member_setting <玩家名称> [领地名称]");
return;
}
ListView view = ListView.create(10, "/dominion privilege_info " + playerName + " " + dominion.getName());
int page = getPage(args, 3);
String playerName = args[1];
ListView view = ListView.create(10, "/dominion member_setting " + playerName + " " + dominion.getName());
if (noAuthToManage(player, dominion)) return;
PlayerDTO playerDTO = PlayerDTO.select(playerName);
if (playerDTO == null) {
@ -45,7 +49,7 @@ public class PrivilegeInfo {
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
.append(Button.create("成员列表").setExecuteCommand("/dominion privilege_list " + dominion.getName()).build())
.append(Button.create("成员列表").setExecuteCommand("/dominion member_list " + dominion.getName()).build())
.append("成员权限")
);
view.add(Line.create().append(Button.createGreen("套用模板")

View File

@ -1,7 +1,8 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion.manage.member;
import cn.lunadeer.dominion.controllers.PlayerController;
import cn.lunadeer.dominion.dtos.PlayerDTO;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
@ -11,25 +12,24 @@ import org.bukkit.entity.Player;
import java.util.List;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.tuis.Apis.getPage;
public class SelectPlayer {
// /dominion select_player_create_privilege <领地名称> [页码]
public static void show(CommandSender sender, String[] args) {
if (args.length < 2) {
Notification.error(sender, "用法: /dominion select_player_create_privilege <领地名称> [页码]");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
int page = 1;
if (args.length == 3) {
try {
page = Integer.parseInt(args[2]);
} catch (Exception ignored) {
}
}
int page = getPage(args, 2);
String dominion_name = args[1];
ListView view = ListView.create(10, "/dominion select_player_create_privilege " + dominion_name);
Line sub = Line.create()
.append("只能选择已经登录过的玩家")
.append(Button.create("搜索").setExecuteCommand("/dominion cui_create_privilege " + dominion_name).build())
.append(Button.create("返回").setExecuteCommand("/dominion privilege_list " + dominion_name).build());
.append(Button.create("返回").setExecuteCommand("/dominion member_list " + dominion_name).build());
view.title("选择玩家添加为成员").subtitle(sub);
List<PlayerDTO> players = PlayerController.allPlayers();
for (PlayerDTO p : players) {

View File

@ -1,6 +1,7 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.dominion.manage.member;
import cn.lunadeer.dominion.dtos.PrivilegeTemplateDTO;
import cn.lunadeer.minecraftpluginutils.Notification;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
@ -11,23 +12,24 @@ import org.bukkit.entity.Player;
import java.util.List;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.tuis.Apis.getPage;
public class SelectTemplate {
public static void show(CommandSender sender, String[] args) {
if (args.length < 3) {
// /dominion select_template <玩家名称> <领地名称> [页码]
Notification.error(sender, "用法: /dominion select_template <玩家名称> <领地名称> [页码]");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
String playerName = args[1];
String dominionName = args[2];
int page = 1;
if (args.length == 5) {
try {
page = Integer.parseInt(args[4]);
} catch (Exception ignored) {
}
}
int page = getPage(args, 3);
List<PrivilegeTemplateDTO> templates = PrivilegeTemplateDTO.selectAll(player.getUniqueId());
@ -35,7 +37,7 @@ public class SelectTemplate {
view.title("选择一个模板");
Line sub = Line.create()
.append("套用在领地 " + dominionName + " 的成员 " + playerName + " 身上")
.append(Button.create("返回").setExecuteCommand("/dominion privilege_info " + playerName + " " + dominionName).build());
.append(Button.create("返回").setExecuteCommand("/dominion member_setting " + playerName + " " + dominionName).build());
view.subtitle(sub);
for (PrivilegeTemplateDTO template : templates) {

View File

@ -1,4 +1,4 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.template;
import cn.lunadeer.dominion.dtos.PrivilegeTemplateDTO;
import cn.lunadeer.minecraftpluginutils.stui.ListView;

View File

@ -1,4 +1,4 @@
package cn.lunadeer.dominion.tuis;
package cn.lunadeer.dominion.tuis.template;
import cn.lunadeer.dominion.dtos.Flag;
import cn.lunadeer.dominion.dtos.PrivilegeTemplateDTO;