This commit is contained in:
parent
73fe76c3c7
commit
bf9aa8414c
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>cn.lunadeer</groupId>
|
<groupId>cn.lunadeer</groupId>
|
||||||
<artifactId>Dominion</artifactId>
|
<artifactId>Dominion</artifactId>
|
||||||
<version>1.34.2-beta</version>
|
<version>1.34.4-beta</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>Dominion</name>
|
<name>Dominion</name>
|
||||||
|
@ -4,20 +4,15 @@ import cn.lunadeer.dominion.commands.*;
|
|||||||
import cn.lunadeer.dominion.controllers.PlayerController;
|
import cn.lunadeer.dominion.controllers.PlayerController;
|
||||||
import cn.lunadeer.dominion.cuis.*;
|
import cn.lunadeer.dominion.cuis.*;
|
||||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||||
import cn.lunadeer.dominion.tuis.*;
|
import cn.lunadeer.dominion.tuis.AllDominion;
|
||||||
|
import cn.lunadeer.dominion.tuis.Menu;
|
||||||
import cn.lunadeer.dominion.tuis.MigrateList;
|
import cn.lunadeer.dominion.tuis.MigrateList;
|
||||||
import cn.lunadeer.dominion.tuis.dominion.DominionManage;
|
import cn.lunadeer.dominion.tuis.SysConfig;
|
||||||
import cn.lunadeer.dominion.tuis.dominion.DominionList;
|
import cn.lunadeer.dominion.tuis.dominion.DominionList;
|
||||||
import cn.lunadeer.dominion.tuis.dominion.manage.*;
|
import cn.lunadeer.dominion.tuis.dominion.DominionManage;
|
||||||
import cn.lunadeer.dominion.tuis.dominion.manage.group.GroupList;
|
import cn.lunadeer.dominion.tuis.dominion.manage.EnvSetting;
|
||||||
import cn.lunadeer.dominion.tuis.dominion.manage.group.GroupSetting;
|
import cn.lunadeer.dominion.tuis.dominion.manage.GuestSetting;
|
||||||
import cn.lunadeer.dominion.tuis.dominion.manage.group.SelectMember;
|
import cn.lunadeer.dominion.tuis.dominion.manage.SizeInfo;
|
||||||
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.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
@ -94,24 +89,6 @@ public class Commands implements TabExecutor {
|
|||||||
case "set":
|
case "set":
|
||||||
DominionFlag.setDominionFlag(sender, args);
|
DominionFlag.setDominionFlag(sender, args);
|
||||||
break;
|
break;
|
||||||
case "create_privilege":
|
|
||||||
PlayerPrivilege.createPlayerPrivilege(sender, args);
|
|
||||||
break;
|
|
||||||
case "set_privilege":
|
|
||||||
PlayerPrivilege.setPlayerPrivilege(sender, args);
|
|
||||||
break;
|
|
||||||
case "clear_privilege":
|
|
||||||
PlayerPrivilege.clearPlayerPrivilege(sender, args);
|
|
||||||
break;
|
|
||||||
case "member_list":
|
|
||||||
MemberList.show(sender, args);
|
|
||||||
break;
|
|
||||||
case "member_setting":
|
|
||||||
MemberSetting.show(sender, args);
|
|
||||||
break;
|
|
||||||
case "select_player_create_privilege":
|
|
||||||
SelectPlayer.show(sender, args);
|
|
||||||
break;
|
|
||||||
case "set_enter_msg":
|
case "set_enter_msg":
|
||||||
DominionOperate.setEnterMessage(sender, args);
|
DominionOperate.setEnterMessage(sender, args);
|
||||||
break;
|
break;
|
||||||
@ -148,27 +125,6 @@ public class Commands implements TabExecutor {
|
|||||||
case "all_dominion":
|
case "all_dominion":
|
||||||
AllDominion.show(sender, args);
|
AllDominion.show(sender, args);
|
||||||
break;
|
break;
|
||||||
case "template_list":
|
|
||||||
TemplateList.show(sender, args);
|
|
||||||
break;
|
|
||||||
case "template_manage":
|
|
||||||
TemplateManage.show(sender, args);
|
|
||||||
break;
|
|
||||||
case "template_delete":
|
|
||||||
Template.deleteTemplate(sender, args);
|
|
||||||
break;
|
|
||||||
case "template_create":
|
|
||||||
Template.createTemplate(sender, args);
|
|
||||||
break;
|
|
||||||
case "template_set_flag":
|
|
||||||
Template.setTemplateFlag(sender, args);
|
|
||||||
break;
|
|
||||||
case "apply_template":
|
|
||||||
PlayerPrivilege.applyTemplate(sender, args);
|
|
||||||
break;
|
|
||||||
case "select_template":
|
|
||||||
SelectTemplate.show(sender, args);
|
|
||||||
break;
|
|
||||||
case "migrate_list":
|
case "migrate_list":
|
||||||
MigrateList.show(sender, args);
|
MigrateList.show(sender, args);
|
||||||
break;
|
break;
|
||||||
@ -181,32 +137,15 @@ public class Commands implements TabExecutor {
|
|||||||
case "env_setting":
|
case "env_setting":
|
||||||
EnvSetting.show(sender, args);
|
EnvSetting.show(sender, args);
|
||||||
break;
|
break;
|
||||||
case "create_group":
|
// ---=== Sub Command ===---
|
||||||
Group.createGroup(sender, args);
|
case "member":
|
||||||
|
Member.handle(sender, args);
|
||||||
break;
|
break;
|
||||||
case "delete_group":
|
case "group":
|
||||||
Group.deleteGroup(sender, args);
|
Group.handle(sender, args);
|
||||||
break;
|
break;
|
||||||
case "rename_group":
|
case "template":
|
||||||
Group.renameGroup(sender, args);
|
Template.handle(sender, args);
|
||||||
break;
|
|
||||||
case "set_group_flag":
|
|
||||||
Group.setGroupFlag(sender, args);
|
|
||||||
break;
|
|
||||||
case "group_add_member":
|
|
||||||
Group.addMember(sender, args);
|
|
||||||
break;
|
|
||||||
case "group_remove_member":
|
|
||||||
Group.removeMember(sender, args);
|
|
||||||
break;
|
|
||||||
case "group_list":
|
|
||||||
GroupList.show(sender, args);
|
|
||||||
break;
|
|
||||||
case "select_member_add_group":
|
|
||||||
SelectMember.show(sender, args);
|
|
||||||
break;
|
|
||||||
case "group_setting":
|
|
||||||
GroupSetting.show(sender, args);
|
|
||||||
break;
|
break;
|
||||||
// ---=== CUI ===---
|
// ---=== CUI ===---
|
||||||
case "cui_rename":
|
case "cui_rename":
|
||||||
@ -221,8 +160,8 @@ public class Commands implements TabExecutor {
|
|||||||
case "cui_create":
|
case "cui_create":
|
||||||
CreateDominion.open(sender, args);
|
CreateDominion.open(sender, args);
|
||||||
break;
|
break;
|
||||||
case "cui_create_privilege":
|
case "cui_member_add":
|
||||||
CreatePrivilege.open(sender, args);
|
MemberAdd.open(sender, args);
|
||||||
break;
|
break;
|
||||||
case "cui_template_create":
|
case "cui_template_create":
|
||||||
CreateTemplate.open(sender, args);
|
CreateTemplate.open(sender, args);
|
||||||
@ -258,9 +197,8 @@ public class Commands implements TabExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
return Arrays.asList("menu", "help", "info", "manage", "guest_setting", "member_list",
|
return Arrays.asList("menu", "help", "info", "manage", "guest_setting",
|
||||||
"create", "auto_create", "create_sub", "auto_create_sub", "expand", "contract", "delete", "set",
|
"create", "auto_create", "create_sub", "auto_create_sub", "expand", "contract", "delete", "set",
|
||||||
"create_privilege", "set_privilege", "clear_privilege", "list", "member_setting",
|
|
||||||
"set_enter_msg",
|
"set_enter_msg",
|
||||||
"set_leave_msg",
|
"set_leave_msg",
|
||||||
"set_tp_location",
|
"set_tp_location",
|
||||||
@ -271,24 +209,27 @@ public class Commands implements TabExecutor {
|
|||||||
"reload_config",
|
"reload_config",
|
||||||
"export_mca",
|
"export_mca",
|
||||||
"sys_config",
|
"sys_config",
|
||||||
"apply_template",
|
|
||||||
"template_list",
|
|
||||||
"template_manage",
|
|
||||||
"template_delete",
|
|
||||||
"template_create",
|
|
||||||
"template_set_flag",
|
|
||||||
"all_dominion",
|
"all_dominion",
|
||||||
"set_map_color",
|
"set_map_color",
|
||||||
"create_group", "delete_group", "rename_group", "set_group_flag", "group_add_member", "group_remove_member"
|
"member",
|
||||||
|
"group",
|
||||||
|
"template"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if (args.length > 1 && args[0].equals("member")) {
|
||||||
|
return Member.handleTab(sender, args);
|
||||||
|
}
|
||||||
|
if (args.length > 1 && args[0].equals("group")) {
|
||||||
|
return Group.handleTab(sender, args);
|
||||||
|
}
|
||||||
|
if (args.length > 1 && args[0].equals("template")) {
|
||||||
|
return Template.handleTab(sender, args);
|
||||||
|
}
|
||||||
if (args.length == 2) {
|
if (args.length == 2) {
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "help":
|
case "help":
|
||||||
case "list":
|
case "list":
|
||||||
case "sys_config":
|
case "sys_config":
|
||||||
case "template_list":
|
|
||||||
return Collections.singletonList("页码(可选)");
|
|
||||||
case "create":
|
case "create":
|
||||||
case "auto_create":
|
case "auto_create":
|
||||||
return Collections.singletonList("输入领地名称");
|
return Collections.singletonList("输入领地名称");
|
||||||
@ -296,27 +237,14 @@ public class Commands implements TabExecutor {
|
|||||||
case "info":
|
case "info":
|
||||||
case "manage":
|
case "manage":
|
||||||
case "guest_setting":
|
case "guest_setting":
|
||||||
case "member_list":
|
|
||||||
case "rename":
|
case "rename":
|
||||||
case "give":
|
case "give":
|
||||||
case "set_tp_location":
|
case "set_tp_location":
|
||||||
case "create_group":
|
|
||||||
case "delete_group":
|
|
||||||
case "rename_group":
|
|
||||||
case "set_group_flag":
|
|
||||||
case "group_add_member":
|
|
||||||
case "group_remove_member":
|
|
||||||
return playerDominions(sender);
|
return playerDominions(sender);
|
||||||
case "tp":
|
case "tp":
|
||||||
return allDominions();
|
return allDominions();
|
||||||
case "set":
|
case "set":
|
||||||
return dominionFlags();
|
return dominionFlags();
|
||||||
case "create_privilege":
|
|
||||||
case "set_privilege":
|
|
||||||
case "clear_privilege":
|
|
||||||
case "member_setting":
|
|
||||||
case "apply_template":
|
|
||||||
return playerNames();
|
|
||||||
case "expand":
|
case "expand":
|
||||||
case "contract":
|
case "contract":
|
||||||
return Collections.singletonList("大小(整数)");
|
return Collections.singletonList("大小(整数)");
|
||||||
@ -327,12 +255,6 @@ public class Commands implements TabExecutor {
|
|||||||
return Collections.singletonList("进入提示语内容");
|
return Collections.singletonList("进入提示语内容");
|
||||||
case "set_leave_msg":
|
case "set_leave_msg":
|
||||||
return Collections.singletonList("离开提示语内容");
|
return Collections.singletonList("离开提示语内容");
|
||||||
case "template_manage":
|
|
||||||
case "template_delete":
|
|
||||||
case "template_set_flag":
|
|
||||||
return allTemplates(sender);
|
|
||||||
case "template_create":
|
|
||||||
return Collections.singletonList("输入模板名称");
|
|
||||||
case "set_map_color":
|
case "set_map_color":
|
||||||
return Collections.singletonList("输入颜色(16进制)");
|
return Collections.singletonList("输入颜色(16进制)");
|
||||||
}
|
}
|
||||||
@ -341,70 +263,34 @@ public class Commands implements TabExecutor {
|
|||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "set":
|
case "set":
|
||||||
return boolOptions();
|
return boolOptions();
|
||||||
case "set_privilege":
|
|
||||||
case "template_set_flag":
|
|
||||||
return playerPrivileges();
|
|
||||||
case "expand":
|
case "expand":
|
||||||
case "contract":
|
case "contract":
|
||||||
case "clear_privilege":
|
|
||||||
case "create_privilege":
|
|
||||||
case "member_setting":
|
|
||||||
case "auto_create_sub":
|
case "auto_create_sub":
|
||||||
case "create_sub":
|
case "create_sub":
|
||||||
case "set_enter_msg":
|
case "set_enter_msg":
|
||||||
case "set_leave_msg":
|
case "set_leave_msg":
|
||||||
case "apply_template":
|
|
||||||
case "set_map_color":
|
case "set_map_color":
|
||||||
return playerDominions(sender);
|
return playerDominions(sender);
|
||||||
case "rename":
|
case "rename":
|
||||||
return Collections.singletonList("输入新领地名称");
|
return Collections.singletonList("输入新领地名称");
|
||||||
case "give":
|
case "give":
|
||||||
return playerNames();
|
return playerNames();
|
||||||
case "template_manage":
|
|
||||||
return Collections.singletonList("页码(可选)");
|
|
||||||
case "create_group":
|
|
||||||
return Collections.singletonList("输入要创建的权限组名称");
|
|
||||||
case "delete_group":
|
|
||||||
case "rename_group":
|
|
||||||
case "set_group_flag":
|
|
||||||
case "group_add_member":
|
|
||||||
case "group_remove_member":
|
|
||||||
return dominionGroups(args[1]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (args.length == 4) {
|
if (args.length == 4) {
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "set":
|
case "set":
|
||||||
return playerDominions(sender);
|
return playerDominions(sender);
|
||||||
case "set_privilege":
|
|
||||||
case "template_set_flag":
|
|
||||||
return boolOptions();
|
|
||||||
case "apply_template":
|
|
||||||
return allTemplates(sender);
|
|
||||||
case "rename_group":
|
|
||||||
return Collections.singletonList("输入新的权限组名称");
|
|
||||||
case "set_group_flag":
|
|
||||||
return playerPrivileges();
|
|
||||||
case "group_add_member":
|
|
||||||
return playerNames();
|
|
||||||
case "group_remove_member":
|
|
||||||
return groupPlayers(args[1], args[2]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (args.length == 5) {
|
|
||||||
switch (args[0]) {
|
|
||||||
case "set_group_flag":
|
|
||||||
return boolOptions();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<String> boolOptions() {
|
public static List<String> boolOptions() {
|
||||||
return Arrays.asList("true", "false");
|
return Arrays.asList("true", "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<String> playerNames() {
|
public static List<String> playerNames() {
|
||||||
List<PlayerDTO> players = PlayerController.allPlayers();
|
List<PlayerDTO> players = PlayerController.allPlayers();
|
||||||
List<String> names = new ArrayList<>();
|
List<String> names = new ArrayList<>();
|
||||||
for (PlayerDTO player : players) {
|
for (PlayerDTO player : players) {
|
||||||
|
@ -62,4 +62,8 @@ public class Apis {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String CommandParser(String command, Object... args) {
|
||||||
|
return String.format(command, args);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,154 +4,258 @@ import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
|||||||
import cn.lunadeer.dominion.controllers.GroupController;
|
import cn.lunadeer.dominion.controllers.GroupController;
|
||||||
import cn.lunadeer.dominion.tuis.dominion.manage.group.GroupList;
|
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.GroupSetting;
|
||||||
|
import cn.lunadeer.dominion.tuis.dominion.manage.group.SelectMember;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.Commands.boolOptions;
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
import static cn.lunadeer.dominion.commands.Helper.*;
|
||||||
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
||||||
|
|
||||||
public class Group {
|
public class Group {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* /dominion create_group <领地名称> <权限组名称>
|
* /dominion group create <领地名称> <权限组名称>
|
||||||
*
|
*
|
||||||
* @param sender 命令发送者
|
* @param sender 命令发送者
|
||||||
* @param args 命令参数
|
* @param args 命令参数
|
||||||
*/
|
*/
|
||||||
public static void createGroup(CommandSender sender, String[] args) {
|
public static void createGroup(CommandSender sender, String[] args) {
|
||||||
if (args.length < 3) {
|
try {
|
||||||
|
if (args.length < 4) {
|
||||||
|
Notification.error(sender, "用法: /dominion group create <领地名称> <权限组名称>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
String dominionName = args[1];
|
String dominionName = args[2];
|
||||||
String groupName = args[2];
|
String groupName = args[3];
|
||||||
GroupController.createGroup(operator, dominionName, groupName);
|
GroupController.createGroup(operator, dominionName, groupName);
|
||||||
String[] newArgs = new String[2];
|
GroupList.show(sender, dominionName);
|
||||||
newArgs[0] = "group_list";
|
} catch (Exception e) {
|
||||||
newArgs[1] = dominionName;
|
Notification.error(sender, e.getMessage());
|
||||||
GroupList.show(sender, newArgs);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* /dominion delete_group <领地名称> <权限组名称>
|
* /dominion group delete <领地名称> <权限组名称>
|
||||||
*
|
*
|
||||||
* @param sender 命令发送者
|
* @param sender 命令发送者
|
||||||
* @param args 命令参数
|
* @param args 命令参数
|
||||||
*/
|
*/
|
||||||
public static void deleteGroup(CommandSender sender, String[] args) {
|
public static void deleteGroup(CommandSender sender, String[] args) {
|
||||||
if (args.length < 3) {
|
try {
|
||||||
|
if (args.length < 4) {
|
||||||
|
Notification.error(sender, "用法: /dominion group delete <领地名称> <权限组名称>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
String dominionName = args[1];
|
String dominionName = args[2];
|
||||||
String groupName = args[2];
|
String groupName = args[3];
|
||||||
GroupController.deleteGroup(operator, dominionName, groupName);
|
GroupController.deleteGroup(operator, dominionName, groupName);
|
||||||
String[] newArgs = new String[2];
|
GroupList.show(sender, dominionName);
|
||||||
newArgs[0] = "group_list";
|
} catch (Exception e) {
|
||||||
newArgs[1] = dominionName;
|
Notification.error(sender, e.getMessage());
|
||||||
GroupList.show(sender, newArgs);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* /dominion rename_group <领地名称> <权限组旧名称> <新名称>
|
* /dominion group rename <领地名称> <权限组旧名称> <新名称>
|
||||||
*
|
*
|
||||||
* @param sender 命令发送者
|
* @param sender 命令发送者
|
||||||
* @param args 命令参数
|
* @param args 命令参数
|
||||||
*/
|
*/
|
||||||
public static void renameGroup(CommandSender sender, String[] args) {
|
public static void renameGroup(CommandSender sender, String[] args) {
|
||||||
if (args.length < 4) {
|
try {
|
||||||
|
if (args.length < 5) {
|
||||||
|
Notification.error(sender, "用法: /dominion group rename <领地名称> <权限组旧名称> <新名称>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
String dominionName = args[1];
|
String dominionName = args[2];
|
||||||
String oldGroupName = args[2];
|
String oldGroupName = args[3];
|
||||||
String newGroupName = args[3];
|
String newGroupName = args[4];
|
||||||
GroupController.renameGroup(operator, dominionName, oldGroupName, newGroupName);
|
GroupController.renameGroup(operator, dominionName, oldGroupName, newGroupName);
|
||||||
String[] newArgs = new String[3];
|
GroupSetting.show(sender, dominionName, newGroupName);
|
||||||
newArgs[0] = "group_manage";
|
} catch (Exception e) {
|
||||||
newArgs[1] = dominionName;
|
Notification.error(sender, e.getMessage());
|
||||||
newArgs[2] = newGroupName;
|
}
|
||||||
GroupSetting.show(sender, newArgs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* /dominion set_group_flag <领地名称> <权限组名称> <权限名称> <true|false>
|
* /dominion group set_flag <领地名称> <权限组名称> <权限名称> <true|false>
|
||||||
*
|
*
|
||||||
* @param sender 命令发送者
|
* @param sender 命令发送者
|
||||||
* @param args 命令参数
|
* @param args 命令参数
|
||||||
*/
|
*/
|
||||||
public static void setGroupFlag(CommandSender sender, String[] args) {
|
public static void setGroupFlag(CommandSender sender, String[] args) {
|
||||||
if (args.length < 5) {
|
try {
|
||||||
|
if (args.length < 6) {
|
||||||
|
Notification.error(sender, "用法: /dominion group set_flag <领地名称> <权限组名称> <权限名称> <true|false>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
String dominionName = args[1];
|
String dominionName = args[2];
|
||||||
String groupName = args[2];
|
String groupName = args[3];
|
||||||
String flag = args[3];
|
String flag = args[4];
|
||||||
boolean value = Boolean.parseBoolean(args[4]);
|
boolean value = Boolean.parseBoolean(args[5]);
|
||||||
|
int page = getPage(args, 6);
|
||||||
GroupController.setGroupFlag(operator, dominionName, groupName, flag, value);
|
GroupController.setGroupFlag(operator, dominionName, groupName, flag, value);
|
||||||
String[] newArgs = new String[4];
|
GroupSetting.show(sender, dominionName, groupName, page);
|
||||||
newArgs[0] = "group_manage";
|
} catch (Exception e) {
|
||||||
newArgs[1] = dominionName;
|
Notification.error(sender, e.getMessage());
|
||||||
newArgs[2] = groupName;
|
}
|
||||||
newArgs[3] = String.valueOf(getPage(args, 5));
|
|
||||||
GroupSetting.show(sender, newArgs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* /dominion group_add_member <领地名称> <权限组名称> <玩家名称>
|
* /dominion group add_member <领地名称> <权限组名称> <玩家名称>
|
||||||
*
|
*
|
||||||
* @param sender 命令发送者
|
* @param sender 命令发送者
|
||||||
* @param args 命令参数
|
* @param args 命令参数
|
||||||
*/
|
*/
|
||||||
public static void addMember(CommandSender sender, String[] args) {
|
public static void addMember(CommandSender sender, String[] args) {
|
||||||
if (args.length < 4) {
|
try {
|
||||||
|
if (args.length < 5) {
|
||||||
|
Notification.error(sender, "用法: /dominion group add_member <领地名称> <权限组名称> <玩家名称>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
String dominionName = args[1];
|
String dominionName = args[2];
|
||||||
String groupName = args[2];
|
String groupName = args[3];
|
||||||
String playerName = args[3];
|
String playerName = args[4];
|
||||||
|
int page = getPage(args, 5);
|
||||||
GroupController.addMember(operator, dominionName, groupName, playerName);
|
GroupController.addMember(operator, dominionName, groupName, playerName);
|
||||||
String[] newArgs = new String[3];
|
GroupList.show(sender, dominionName, page);
|
||||||
newArgs[0] = "group_list";
|
} catch (Exception e) {
|
||||||
newArgs[1] = dominionName;
|
Notification.error(sender, e.getMessage());
|
||||||
newArgs[2] = String.valueOf(getPage(args, 4));
|
}
|
||||||
GroupList.show(sender, newArgs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* /dominion group_remove_member <领地名称> <权限组名称> <玩家名称>
|
* /dominion group remove_member <领地名称> <权限组名称> <玩家名称>
|
||||||
*
|
*
|
||||||
* @param sender 命令发送者
|
* @param sender 命令发送者
|
||||||
* @param args 命令参数
|
* @param args 命令参数
|
||||||
*/
|
*/
|
||||||
public static void removeMember(CommandSender sender, String[] args) {
|
public static void removeMember(CommandSender sender, String[] args) {
|
||||||
if (args.length < 4) {
|
try {
|
||||||
|
if (args.length < 5) {
|
||||||
|
Notification.error(sender, "用法: /dominion group remove_member <领地名称> <权限组名称> <玩家名称>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
String dominionName = args[1];
|
String dominionName = args[2];
|
||||||
String groupName = args[2];
|
String groupName = args[3];
|
||||||
String playerName = args[3];
|
String playerName = args[4];
|
||||||
|
int page = getPage(args, 5);
|
||||||
GroupController.removeMember(operator, dominionName, groupName, playerName);
|
GroupController.removeMember(operator, dominionName, groupName, playerName);
|
||||||
String[] newArgs = new String[3];
|
GroupList.show(sender, dominionName, page);
|
||||||
newArgs[0] = "group_list";
|
} catch (Exception e) {
|
||||||
newArgs[1] = dominionName;
|
Notification.error(sender, e.getMessage());
|
||||||
newArgs[2] = String.valueOf(getPage(args, 4));
|
}
|
||||||
GroupList.show(sender, newArgs);
|
}
|
||||||
|
|
||||||
|
public static void handle(@NotNull CommandSender sender, @NotNull String[] args) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "create":
|
||||||
|
createGroup(sender, args);
|
||||||
|
break;
|
||||||
|
case "delete":
|
||||||
|
deleteGroup(sender, args);
|
||||||
|
break;
|
||||||
|
case "rename":
|
||||||
|
renameGroup(sender, args);
|
||||||
|
break;
|
||||||
|
case "set_flag":
|
||||||
|
setGroupFlag(sender, args);
|
||||||
|
break;
|
||||||
|
case "add_member":
|
||||||
|
addMember(sender, args);
|
||||||
|
break;
|
||||||
|
case "remove_member":
|
||||||
|
removeMember(sender, args);
|
||||||
|
break;
|
||||||
|
case "select_member":
|
||||||
|
SelectMember.show(sender, args);
|
||||||
|
break;
|
||||||
|
case "setting":
|
||||||
|
GroupSetting.show(sender, args);
|
||||||
|
break;
|
||||||
|
case "list":
|
||||||
|
GroupList.show(sender, args);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static @Nullable List<String> handleTab(@NotNull CommandSender sender, @NotNull String[] args) {
|
||||||
|
if (args.length == 2) {
|
||||||
|
return Arrays.asList("create", "delete", "rename", "set_flag", "add_member", "remove_member",
|
||||||
|
"select_member", "list");
|
||||||
|
}
|
||||||
|
if (args.length == 3) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "create":
|
||||||
|
case "delete":
|
||||||
|
case "rename":
|
||||||
|
case "set_flag":
|
||||||
|
case "add_member":
|
||||||
|
case "remove_member":
|
||||||
|
case "select_member":
|
||||||
|
case "setting":
|
||||||
|
case "list":
|
||||||
|
return playerDominions(sender);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (args.length == 4) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "create":
|
||||||
|
return Collections.singletonList("新权限组名称");
|
||||||
|
case "delete":
|
||||||
|
case "rename":
|
||||||
|
case "set_flag":
|
||||||
|
case "add_member":
|
||||||
|
case "remove_member":
|
||||||
|
case "select_member":
|
||||||
|
case "setting":
|
||||||
|
return dominionGroups(args[2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (args.length == 5) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "rename":
|
||||||
|
return Collections.singletonList("权限组新名称");
|
||||||
|
case "set_flag":
|
||||||
|
return playerPrivileges();
|
||||||
|
case "remove_member":
|
||||||
|
return groupPlayers(args[2], args[3]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (args.length == 6) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "set_flag":
|
||||||
|
return boolOptions();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
210
src/main/java/cn/lunadeer/dominion/commands/Member.java
Normal file
210
src/main/java/cn/lunadeer/dominion/commands/Member.java
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
package cn.lunadeer.dominion.commands;
|
||||||
|
|
||||||
|
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
||||||
|
import cn.lunadeer.dominion.controllers.MemberController;
|
||||||
|
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.minecraftpluginutils.Notification;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.Commands.boolOptions;
|
||||||
|
import static cn.lunadeer.dominion.Commands.playerNames;
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
import static cn.lunadeer.dominion.commands.Helper.*;
|
||||||
|
|
||||||
|
public class Member {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建玩家特权
|
||||||
|
* /dominion member add <领地名称> <玩家名称>
|
||||||
|
*
|
||||||
|
* @param sender 命令发送者
|
||||||
|
* @param args 命令参数
|
||||||
|
*/
|
||||||
|
public static void member_add(CommandSender sender, String[] args) {
|
||||||
|
try {
|
||||||
|
if (args.length < 4) {
|
||||||
|
Notification.error(sender, "用法: /dominion member add <领地名称> <玩家名称>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
|
String dominionName = args[2];
|
||||||
|
String playerName = args[3];
|
||||||
|
MemberController.memberAdd(operator, dominionName, playerName);
|
||||||
|
MemberList.show(sender, dominionName);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Notification.error(sender, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置玩家权限
|
||||||
|
* /dominion member set_flag <领地名称> <玩家名称> <权限名称> <true/false>
|
||||||
|
*
|
||||||
|
* @param sender 命令发送者
|
||||||
|
* @param args 命令参数
|
||||||
|
*/
|
||||||
|
public static void member_set_flag(CommandSender sender, String[] args) {
|
||||||
|
try {
|
||||||
|
if (args.length < 6) {
|
||||||
|
Notification.error(sender, "用法: /dominion member set_flag <领地名称> <玩家名称> <权限名称> <true/false>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
|
String dominionName = args[2];
|
||||||
|
String playerName = args[3];
|
||||||
|
String flagName = args[4];
|
||||||
|
boolean flagValue = Boolean.parseBoolean(args[5]);
|
||||||
|
Integer page = args.length == 7 ? Integer.parseInt(args[6]) : 1;
|
||||||
|
MemberController.setMemberFlag(operator, dominionName, playerName, flagName, flagValue);
|
||||||
|
MemberSetting.show(sender, dominionName, playerName, page);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Notification.error(sender, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重置玩家权限
|
||||||
|
* /dominion member remove <领地名称> <玩家名称>
|
||||||
|
*
|
||||||
|
* @param sender 命令发送者
|
||||||
|
* @param args 命令参数
|
||||||
|
*/
|
||||||
|
public static void member_remove(CommandSender sender, String[] args) {
|
||||||
|
try {
|
||||||
|
if (args.length < 4) {
|
||||||
|
Notification.error(sender, "用法: /dominion member remove <领地名称> <玩家名称>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
|
String dominionName = args[2];
|
||||||
|
String playerName = args[3];
|
||||||
|
MemberController.memberRemove(operator, dominionName, playerName);
|
||||||
|
MemberList.show(sender, dominionName);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Notification.error(sender, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用权限模板
|
||||||
|
* /dominion member apply_template <领地名称> <玩家名称> <模板名称>
|
||||||
|
*
|
||||||
|
* @param sender 命令发送者
|
||||||
|
* @param args 命令参数
|
||||||
|
*/
|
||||||
|
public static void member_apply_template(CommandSender sender, String[] args) {
|
||||||
|
try {
|
||||||
|
if (args.length < 5) {
|
||||||
|
Notification.error(sender, "用法: /dominion member apply_template <领地名称> <玩家名称> <模板名称>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
|
String dominionName = args[2];
|
||||||
|
String playerName = args[3];
|
||||||
|
String templateName = args[4];
|
||||||
|
MemberController.applyTemplate(operator, dominionName, playerName, templateName);
|
||||||
|
MemberSetting.show(sender, dominionName, playerName);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Notification.error(sender, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handle(@NotNull CommandSender sender, @NotNull String[] args) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "add":
|
||||||
|
Member.member_add(sender, args);
|
||||||
|
break;
|
||||||
|
case "set_flag":
|
||||||
|
Member.member_set_flag(sender, args);
|
||||||
|
break;
|
||||||
|
case "remove":
|
||||||
|
Member.member_remove(sender, args);
|
||||||
|
break;
|
||||||
|
case "apply_template":
|
||||||
|
Member.member_apply_template(sender, args);
|
||||||
|
break;
|
||||||
|
case "list":
|
||||||
|
MemberList.show(sender, args);
|
||||||
|
break;
|
||||||
|
case "setting":
|
||||||
|
MemberSetting.show(sender, args);
|
||||||
|
break;
|
||||||
|
case "select_player":
|
||||||
|
SelectPlayer.show(sender, args);
|
||||||
|
break;
|
||||||
|
case "select_template":
|
||||||
|
SelectTemplate.show(sender, args);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static @Nullable List<String> handleTab(@NotNull CommandSender sender, @NotNull String[] args) {
|
||||||
|
if (args.length == 2) {
|
||||||
|
return Arrays.asList("add", "set_flag", "remove", "apply_template", "list", "setting", "select_player", "select_template");
|
||||||
|
}
|
||||||
|
if (args.length == 3) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "add":
|
||||||
|
case "remove":
|
||||||
|
case "list":
|
||||||
|
case "setting":
|
||||||
|
case "set_flag":
|
||||||
|
case "apply_template":
|
||||||
|
case "select_player":
|
||||||
|
case "select_template":
|
||||||
|
return playerDominions(sender);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (args.length == 4) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "add":
|
||||||
|
case "remove":
|
||||||
|
case "set_flag":
|
||||||
|
case "apply_template":
|
||||||
|
case "setting":
|
||||||
|
case "select_template":
|
||||||
|
case "select_player":
|
||||||
|
return playerNames();
|
||||||
|
case "list":
|
||||||
|
return Collections.singletonList("页码(可选)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (args.length == 5) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "set_flag":
|
||||||
|
return playerPrivileges();
|
||||||
|
case "apply_template":
|
||||||
|
return allTemplates(sender);
|
||||||
|
case "setting":
|
||||||
|
case "select_template":
|
||||||
|
return Collections.singletonList("页码(可选)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (args.length == 6) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "set_flag":
|
||||||
|
return boolOptions();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -31,6 +31,11 @@ public class Operator {
|
|||||||
Cache.instance.loadPlayerPrivileges();
|
Cache.instance.loadPlayerPrivileges();
|
||||||
Notification.info(sender, "玩家权限缓存已重新加载");
|
Notification.info(sender, "玩家权限缓存已重新加载");
|
||||||
});
|
});
|
||||||
|
Scheduler.runTaskAsync(() -> {
|
||||||
|
Notification.info(sender, "正在从数据库重新加载权限组缓存...");
|
||||||
|
Cache.instance.loadGroup();
|
||||||
|
Notification.info(sender, "权限组缓存已重新加载");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void exportMca(CommandSender sender, String[] args) {
|
public static void exportMca(CommandSender sender, String[] args) {
|
||||||
|
@ -1,126 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.commands;
|
|
||||||
|
|
||||||
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
|
||||||
import cn.lunadeer.dominion.controllers.PrivilegeController;
|
|
||||||
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;
|
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
|
||||||
import static cn.lunadeer.dominion.controllers.PrivilegeController.*;
|
|
||||||
|
|
||||||
public class PlayerPrivilege {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建玩家特权
|
|
||||||
* /dominion create_privilege <玩家名称> [领地名称]
|
|
||||||
*
|
|
||||||
* @param sender 命令发送者
|
|
||||||
* @param args 命令参数
|
|
||||||
*/
|
|
||||||
public static void createPlayerPrivilege(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
|
||||||
if (args.length != 2 && args.length != 3 && args.length != 4) {
|
|
||||||
Notification.error(sender, "用法: /dominion create_privilege <玩家名称> [领地名称]");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (args.length == 2) {
|
|
||||||
createPrivilege(operator, args[1]);
|
|
||||||
} else {
|
|
||||||
createPrivilege(operator, args[1], args[2]);
|
|
||||||
}
|
|
||||||
if (args.length == 4) {
|
|
||||||
String[] newArgs = new String[2];
|
|
||||||
newArgs[0] = "privilege_list";
|
|
||||||
newArgs[1] = args[2];
|
|
||||||
MemberList.show(sender, newArgs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置玩家权限
|
|
||||||
* /dominion set_privilege <玩家名称> <权限名称> <true/false> [领地名称]
|
|
||||||
*
|
|
||||||
* @param sender 命令发送者
|
|
||||||
* @param args 命令参数
|
|
||||||
*/
|
|
||||||
public static void setPlayerPrivilege(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
|
||||||
if (args.length == 4) {
|
|
||||||
setPrivilege(operator, args[1], args[2], Boolean.parseBoolean(args[3]));
|
|
||||||
} else if (args.length == 5) {
|
|
||||||
setPrivilege(operator, args[1], args[2], Boolean.parseBoolean(args[3]), args[4]);
|
|
||||||
} else if (args.length == 6) {
|
|
||||||
setPrivilege(operator, args[1], args[2], Boolean.parseBoolean(args[3]), args[4]);
|
|
||||||
String[] newArgs = new String[4];
|
|
||||||
newArgs[0] = "privilege_info";
|
|
||||||
newArgs[1] = args[1];
|
|
||||||
newArgs[2] = args[4];
|
|
||||||
newArgs[3] = args[5];
|
|
||||||
MemberSetting.show(sender, newArgs);
|
|
||||||
} else {
|
|
||||||
Notification.error(sender, "用法: /dominion set_privilege <玩家名称> <权限名称> <true/false> [领地名称]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 重置玩家权限
|
|
||||||
* /dominion clear_privilege <玩家名称> [领地名称]
|
|
||||||
*
|
|
||||||
* @param sender 命令发送者
|
|
||||||
* @param args 命令参数
|
|
||||||
*/
|
|
||||||
public static void clearPlayerPrivilege(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
|
||||||
if (args.length != 2 && args.length != 3 && args.length != 4) {
|
|
||||||
Notification.error(sender, "用法: /dominion clear_privilege <玩家名称> [领地名称]");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (args.length == 2) {
|
|
||||||
clearPrivilege(operator, args[1]);
|
|
||||||
} else {
|
|
||||||
clearPrivilege(operator, args[1], args[2]);
|
|
||||||
}
|
|
||||||
if (args.length == 4) {
|
|
||||||
String[] newArgs = new String[3];
|
|
||||||
newArgs[0] = "privilege_list";
|
|
||||||
newArgs[1] = args[2];
|
|
||||||
MemberList.show(sender, newArgs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用权限模板
|
|
||||||
* /dominion apply_template <玩家名称> <领地名称> <模板名称>
|
|
||||||
*
|
|
||||||
* @param sender 命令发送者
|
|
||||||
* @param args 命令参数
|
|
||||||
*/
|
|
||||||
public static void applyTemplate(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
if (args.length < 4) {
|
|
||||||
Notification.error(sender, "用法: /dominion apply_template <玩家名称> <领地名称> <模板名称>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
|
||||||
String playerName = args[1];
|
|
||||||
String dominionName = args[2];
|
|
||||||
String templateName = args[3];
|
|
||||||
PrivilegeController.applyTemplate(operator, dominionName, playerName, templateName);
|
|
||||||
String[] newArgs = new String[3];
|
|
||||||
newArgs[0] = "member_setting";
|
|
||||||
newArgs[1] = playerName;
|
|
||||||
newArgs[2] = dominionName;
|
|
||||||
MemberSetting.show(sender, newArgs);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -3,97 +3,149 @@ package cn.lunadeer.dominion.commands;
|
|||||||
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
||||||
import cn.lunadeer.dominion.controllers.TemplateController;
|
import cn.lunadeer.dominion.controllers.TemplateController;
|
||||||
import cn.lunadeer.dominion.tuis.template.TemplateList;
|
import cn.lunadeer.dominion.tuis.template.TemplateList;
|
||||||
import cn.lunadeer.dominion.tuis.template.TemplateManage;
|
import cn.lunadeer.dominion.tuis.template.TemplateSetting;
|
||||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.Commands.boolOptions;
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
import static cn.lunadeer.dominion.commands.Helper.allTemplates;
|
||||||
|
import static cn.lunadeer.dominion.commands.Helper.playerPrivileges;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
||||||
|
|
||||||
public class Template {
|
public class Template {
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除权限模板
|
|
||||||
* /dominion template_delete <模板名称> [页码]
|
|
||||||
*
|
|
||||||
* @param sender 命令发送者
|
|
||||||
* @param args 命令参数
|
|
||||||
*/
|
|
||||||
public static void deleteTemplate(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
|
||||||
if (args.length < 2) {
|
|
||||||
Notification.error(sender, "用法: /dominion template_delete <模板名称>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
TemplateController.deleteTemplate(operator, args[1]);
|
|
||||||
String[] newArgs = new String[2];
|
|
||||||
newArgs[0] = "template_list";
|
|
||||||
if (args.length == 3) {
|
|
||||||
newArgs[1] = args[2];
|
|
||||||
} else {
|
|
||||||
newArgs[1] = "1";
|
|
||||||
}
|
|
||||||
TemplateList.show(sender, newArgs);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建权限模板
|
* 创建权限模板
|
||||||
* /dominion template_create <模板名称> [页码]
|
* /dominion template create <模板名称> [页码]
|
||||||
*
|
*
|
||||||
* @param sender 命令发送者
|
* @param sender 命令发送者
|
||||||
* @param args 命令参数
|
* @param args 命令参数
|
||||||
*/
|
*/
|
||||||
public static void createTemplate(CommandSender sender, String[] args) {
|
public static void createTemplate(CommandSender sender, String[] args) {
|
||||||
|
try {
|
||||||
|
if (args.length < 3) {
|
||||||
|
Notification.error(sender, "用法: /dominion template create <模板名称>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
if (args.length < 2) {
|
TemplateController.createTemplate(operator, args[2]);
|
||||||
Notification.error(sender, "用法: /dominion template_create <模板名称>");
|
TemplateList.show(sender);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Notification.error(sender, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除权限模板
|
||||||
|
* /dominion template delete <模板名称> [页码]
|
||||||
|
*
|
||||||
|
* @param sender 命令发送者
|
||||||
|
* @param args 命令参数
|
||||||
|
*/
|
||||||
|
public static void deleteTemplate(CommandSender sender, String[] args) {
|
||||||
|
try {
|
||||||
|
if (args.length < 3) {
|
||||||
|
Notification.error(sender, "用法: /dominion template delete <模板名称>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TemplateController.createTemplate(operator, args[1]);
|
Player player = playerOnly(sender);
|
||||||
String[] newArgs = new String[2];
|
if (player == null) return;
|
||||||
newArgs[0] = "template_list";
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
newArgs[1] = "1";
|
TemplateController.deleteTemplate(operator, args[2]);
|
||||||
TemplateList.show(sender, newArgs);
|
TemplateList.show(sender, getPage(args, 3));
|
||||||
|
} catch (Exception e) {
|
||||||
|
Notification.error(sender, e.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑模板
|
* 编辑模板
|
||||||
* /dominion template_set_flag <模板名称> <权限名称> <true/false> [页码]
|
* /dominion template set_flag <模板名称> <权限名称> <true/false> [页码]
|
||||||
*
|
*
|
||||||
* @param sender 命令发送者
|
* @param sender 命令发送者
|
||||||
* @param args 命令参数
|
* @param args 命令参数
|
||||||
*/
|
*/
|
||||||
public static void setTemplateFlag(CommandSender sender, String[] args) {
|
public static void setTemplateFlag(CommandSender sender, String[] args) {
|
||||||
|
try {
|
||||||
|
if (args.length < 5) {
|
||||||
|
Notification.error(sender, "用法: /dominion template set_flag <模板名称> <权限名称> <true/false>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
|
||||||
if (args.length < 4) {
|
String templateName = args[2];
|
||||||
Notification.error(sender, "用法: /dominion template_set_flag <模板名称> <权限名称> <true/false>");
|
String flagName = args[3];
|
||||||
return;
|
boolean value = Boolean.parseBoolean(args[4]);
|
||||||
|
TemplateController.setTemplateFlag(operator, templateName, flagName, value);
|
||||||
|
TemplateSetting.show(sender, templateName, getPage(args, 5));
|
||||||
|
} catch (Exception e) {
|
||||||
|
Notification.error(sender, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void handle(@NotNull CommandSender sender, @NotNull String[] args) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "list":
|
||||||
|
TemplateList.show(sender, args);
|
||||||
|
break;
|
||||||
|
case "setting":
|
||||||
|
TemplateSetting.show(sender, args);
|
||||||
|
break;
|
||||||
|
case "delete":
|
||||||
|
Template.deleteTemplate(sender, args);
|
||||||
|
break;
|
||||||
|
case "create":
|
||||||
|
Template.createTemplate(sender, args);
|
||||||
|
break;
|
||||||
|
case "set_flag":
|
||||||
|
Template.setTemplateFlag(sender, args);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static @Nullable List<String> handleTab(@NotNull CommandSender sender, @NotNull String[] args) {
|
||||||
|
if (args.length == 2) {
|
||||||
|
return Arrays.asList("list", "setting", "delete", "create", "set_flag");
|
||||||
|
}
|
||||||
|
if (args.length == 3) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "create":
|
||||||
|
return Collections.singletonList("输入模板名称");
|
||||||
|
case "delete":
|
||||||
|
case "set_flag":
|
||||||
|
case "setting":
|
||||||
|
return allTemplates(sender);
|
||||||
|
case "list":
|
||||||
|
return Collections.singletonList("页码(可选)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (args.length == 4) {
|
||||||
|
switch (args[1]) {
|
||||||
|
case "set_flag":
|
||||||
|
return playerPrivileges();
|
||||||
|
case "setting":
|
||||||
|
return Collections.singletonList("页码(可选)");
|
||||||
}
|
}
|
||||||
boolean value;
|
|
||||||
if (args[3].equalsIgnoreCase("true")) {
|
|
||||||
value = true;
|
|
||||||
} else if (args[3].equalsIgnoreCase("false")) {
|
|
||||||
value = false;
|
|
||||||
} else {
|
|
||||||
Notification.error(sender, "权限值必须是true或false");
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
TemplateController.setTemplateFlag(operator, args[1], args[2], value);
|
|
||||||
String[] newArgs = new String[3];
|
|
||||||
newArgs[0] = "template_manage";
|
|
||||||
newArgs[1] = args[1];
|
|
||||||
if (args.length == 5) {
|
if (args.length == 5) {
|
||||||
newArgs[2] = args[4];
|
switch (args[1]) {
|
||||||
} else {
|
case "set_flag":
|
||||||
newArgs[2] = "1";
|
return boolOptions();
|
||||||
}
|
}
|
||||||
TemplateManage.show(sender, newArgs);
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,30 +1,11 @@
|
|||||||
package cn.lunadeer.dominion.controllers;
|
package cn.lunadeer.dominion.controllers;
|
||||||
|
|
||||||
import cn.lunadeer.dominion.Cache;
|
|
||||||
import cn.lunadeer.dominion.dtos.*;
|
import cn.lunadeer.dominion.dtos.*;
|
||||||
import cn.lunadeer.minecraftpluginutils.XLogger;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.controllers.Apis.noAuthToChangeFlags;
|
import static cn.lunadeer.dominion.controllers.Apis.noAuthToChangeFlags;
|
||||||
import static cn.lunadeer.dominion.controllers.Apis.notOwner;
|
import static cn.lunadeer.dominion.controllers.Apis.notOwner;
|
||||||
|
|
||||||
public class PrivilegeController {
|
public class MemberController {
|
||||||
|
|
||||||
/**
|
|
||||||
* 清空玩家成员权限
|
|
||||||
*
|
|
||||||
* @param operator 操作者
|
|
||||||
* @param player_name 玩家
|
|
||||||
*/
|
|
||||||
public static void clearPrivilege(AbstractOperator operator, String player_name) {
|
|
||||||
DominionDTO dominion = Apis.getPlayerCurrentDominion(operator);
|
|
||||||
if (dominion == null) {
|
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "你不在任何领地内,请指定领地名称 /dominion clear_privilege <玩家名称> <领地名称>"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
clearPrivilege(operator, player_name, dominion.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 清空玩家成员权限
|
* 清空玩家成员权限
|
||||||
@ -33,8 +14,9 @@ public class PrivilegeController {
|
|||||||
* @param player_name 玩家
|
* @param player_name 玩家
|
||||||
* @param dominionName 领地名称
|
* @param dominionName 领地名称
|
||||||
*/
|
*/
|
||||||
public static void clearPrivilege(AbstractOperator operator, String player_name, String dominionName) {
|
public static void memberRemove(AbstractOperator operator, String dominionName, String player_name) {
|
||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "清空玩家 %s 在领地 %s 的权限失败", player_name, dominionName);
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "将玩家 %s 从领地 %s 移除失败", player_name, dominionName);
|
||||||
|
AbstractOperator.Result SUCCESS = new AbstractOperator.Result(AbstractOperator.Result.SUCCESS, "将玩家 %s 从领地 %s 移除成功", player_name, dominionName);
|
||||||
DominionDTO dominion = DominionDTO.select(dominionName);
|
DominionDTO dominion = DominionDTO.select(dominionName);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
operator.setResponse(FAIL.addMessage("领地 %s 不存在", dominionName));
|
operator.setResponse(FAIL.addMessage("领地 %s 不存在", dominionName));
|
||||||
@ -56,24 +38,7 @@ public class PrivilegeController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PlayerPrivilegeDTO.delete(player.getUuid(), dominion.getId());
|
PlayerPrivilegeDTO.delete(player.getUuid(), dominion.getId());
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.SUCCESS, "清空玩家 %s 在领地 %s 的权限成功", player_name, dominionName));
|
operator.setResponse(SUCCESS);
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置玩家成员权限
|
|
||||||
*
|
|
||||||
* @param operator 操作者
|
|
||||||
* @param player_name 玩家
|
|
||||||
* @param flag 权限名称
|
|
||||||
* @param value 权限值
|
|
||||||
*/
|
|
||||||
public static void setPrivilege(AbstractOperator operator, String player_name, String flag, boolean value) {
|
|
||||||
DominionDTO dominion = Apis.getPlayerCurrentDominion(operator);
|
|
||||||
if (dominion == null) {
|
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "你不在任何领地内,请指定领地名称 /dominion set_privilege <玩家名称> <权限名称> <true/false> [领地名称]"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
setPrivilege(operator, player_name, flag, value, dominion.getName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -85,8 +50,9 @@ public class PrivilegeController {
|
|||||||
* @param value 权限值
|
* @param value 权限值
|
||||||
* @param dominionName 领地名称
|
* @param dominionName 领地名称
|
||||||
*/
|
*/
|
||||||
public static void setPrivilege(AbstractOperator operator, String player_name, String flag, boolean value, String dominionName) {
|
public static void setMemberFlag(AbstractOperator operator, String dominionName, String player_name, String flag, boolean value) {
|
||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "设置玩家 %s 在领地 %s 的权限 %s 为 %s 失败", player_name, dominionName, flag, value);
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "设置玩家 %s 在领地 %s 的权限 %s 为 %s 失败", player_name, dominionName, flag, value);
|
||||||
|
AbstractOperator.Result SUCCESS = new AbstractOperator.Result(AbstractOperator.Result.SUCCESS, "设置玩家 %s 在领地 %s 的权限 %s 为 %s 成功", player_name, dominionName, flag, value);
|
||||||
DominionDTO dominion = DominionDTO.select(dominionName);
|
DominionDTO dominion = DominionDTO.select(dominionName);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
operator.setResponse(FAIL.addMessage("领地 %s 不存在", dominionName));
|
operator.setResponse(FAIL.addMessage("领地 %s 不存在", dominionName));
|
||||||
@ -100,8 +66,8 @@ public class PrivilegeController {
|
|||||||
}
|
}
|
||||||
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
||||||
if (privilege == null) {
|
if (privilege == null) {
|
||||||
privilege = createPlayerPrivilege(operator, player.getUuid(), dominion);
|
operator.setResponse(FAIL.addMessage("玩家 %s 不是领地 %s 的成员", player_name, dominionName));
|
||||||
if (privilege == null) return;
|
return;
|
||||||
}
|
}
|
||||||
if ((flag.equals("admin") || privilege.getAdmin()) && notOwner(operator, dominion)) {
|
if ((flag.equals("admin") || privilege.getAdmin()) && notOwner(operator, dominion)) {
|
||||||
operator.setResponse(FAIL.addMessage("你不是领地 %s 的拥有者,无法修改其他玩家管理员的权限", dominionName));
|
operator.setResponse(FAIL.addMessage("你不是领地 %s 的拥有者,无法修改其他玩家管理员的权限", dominionName));
|
||||||
@ -121,53 +87,29 @@ public class PrivilegeController {
|
|||||||
}
|
}
|
||||||
privilege.setFlagValue(f, value);
|
privilege.setFlagValue(f, value);
|
||||||
}
|
}
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.SUCCESS, "设置玩家 %s 在领地 %s 的权限 %s 为 %s 成功", player_name, dominionName, flag, value));
|
operator.setResponse(SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void createPrivilege(AbstractOperator operator, String player_name) {
|
public static void memberAdd(AbstractOperator operator, String dominionName, String player_name) {
|
||||||
DominionDTO dominion = Apis.getPlayerCurrentDominion(operator);
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "将玩家 %s 添加到领地成员 %s 失败", player_name, dominionName);
|
||||||
if (dominion == null) {
|
AbstractOperator.Result SUCCESS = new AbstractOperator.Result(AbstractOperator.Result.SUCCESS, "将玩家 %s 添加到领地成员 %s 成功", player_name, dominionName);
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "你不在任何领地内,请指定领地名称 /dominion create_privilege <玩家名称> <领地名称>"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
createPrivilege(operator, player_name, dominion.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void createPrivilege(AbstractOperator operator, String player_name, String dominionName) {
|
|
||||||
DominionDTO dominion = DominionDTO.select(dominionName);
|
DominionDTO dominion = DominionDTO.select(dominionName);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "领地 %s 不存在,无法创建成员权限", dominionName));
|
operator.setResponse(FAIL.addMessage("领地 %s 不存在", dominionName));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (noAuthToChangeFlags(operator, dominion)) return;
|
if (noAuthToChangeFlags(operator, dominion)) return;
|
||||||
PlayerDTO player = PlayerController.getPlayerDTO(player_name);
|
PlayerDTO player = PlayerController.getPlayerDTO(player_name);
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "玩家 %s 不存在或没有登录过", player_name));
|
operator.setResponse(FAIL.addMessage("玩家 %s 不存在或没有登录过", player_name));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (createPlayerPrivilege(operator, player.getUuid(), dominion) != null) {
|
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.insert(new PlayerPrivilegeDTO(player.getUuid(), dominion));
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.SUCCESS, "创建玩家 %s 在领地 %s 的成员权限成功", player_name, dominionName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static PlayerPrivilegeDTO createPlayerPrivilege(AbstractOperator operator, UUID player, DominionDTO dom) {
|
|
||||||
XLogger.debug("operator: " + operator.getUniqueId() + " player: " + player);
|
|
||||||
if (operator.getUniqueId().equals(player)) {
|
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "你不能给自己设置成员权限"));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PlayerDTO playerDTO = PlayerDTO.select(player);
|
|
||||||
PlayerPrivilegeDTO privilege = Cache.instance.getPlayerPrivilege(player, dom);
|
|
||||||
if (privilege != null) {
|
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "创建玩家成员权限失败,玩家 %s 已经是领地 %s 的成员", playerDTO.getLastKnownName(), dom.getName()));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
privilege = PlayerPrivilegeDTO.insert(new PlayerPrivilegeDTO(player, dom));
|
|
||||||
if (privilege == null) {
|
if (privilege == null) {
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "创建玩家成员权限失败,请联系管理员"));
|
operator.setResponse(FAIL);
|
||||||
return null;
|
} else {
|
||||||
|
operator.setResponse(SUCCESS);
|
||||||
}
|
}
|
||||||
return privilege;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void applyTemplate(AbstractOperator operator, String dominionName, String playerName, String templateName) {
|
public static void applyTemplate(AbstractOperator operator, String dominionName, String playerName, String templateName) {
|
@ -29,10 +29,7 @@ public class CreateGroup {
|
|||||||
XLogger.debug("createGroupCB.run: %s", input);
|
XLogger.debug("createGroupCB.run: %s", input);
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
|
||||||
GroupController.createGroup(operator, dominionName, input);
|
GroupController.createGroup(operator, dominionName, input);
|
||||||
String[] newArgs = new String[2];
|
GroupList.show(sender, dominionName);
|
||||||
newArgs[0] = "group_list";
|
|
||||||
newArgs[1] = dominionName;
|
|
||||||
GroupList.show(sender, newArgs);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,7 +43,7 @@ public class CreateGroup {
|
|||||||
}
|
}
|
||||||
CuiTextInput.InputCallback createGroupCB = new createGroupCB(player, dominion.getName());
|
CuiTextInput.InputCallback createGroupCB = new createGroupCB(player, dominion.getName());
|
||||||
CuiTextInput view = CuiTextInput.create(createGroupCB).setText("未命名权限组").title("输入要创建的权限组名称");
|
CuiTextInput view = CuiTextInput.create(createGroupCB).setText("未命名权限组").title("输入要创建的权限组名称");
|
||||||
view.setSuggestCommand("/dominion create_group <领地名称> <权限组名称>");
|
view.setSuggestCommand("/dominion group create <领地名称> <权限组名称>");
|
||||||
view.open(player);
|
view.open(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,10 +23,8 @@ public class CreateTemplate {
|
|||||||
public void handleData(String input) {
|
public void handleData(String input) {
|
||||||
XLogger.debug("createTemplateCB.run: %s", input);
|
XLogger.debug("createTemplateCB.run: %s", input);
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
|
||||||
operator.getResponse().thenAccept(result -> {
|
|
||||||
TemplateList.show(sender, new String[]{"template_list"});
|
|
||||||
});
|
|
||||||
TemplateController.createTemplate(operator, input);
|
TemplateController.createTemplate(operator, input);
|
||||||
|
TemplateList.show(sender);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,7 +33,7 @@ public class CreateTemplate {
|
|||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
CuiTextInput.InputCallback createTemplateCB = new createTemplateCB(player);
|
CuiTextInput.InputCallback createTemplateCB = new createTemplateCB(player);
|
||||||
CuiTextInput view = CuiTextInput.create(createTemplateCB).setText("未命名模板").title("输入模板名称");
|
CuiTextInput view = CuiTextInput.create(createTemplateCB).setText("未命名模板").title("输入模板名称");
|
||||||
view.setSuggestCommand("/dominion template_create <模板名称>");
|
view.setSuggestCommand("/dominion template create <模板名称>");
|
||||||
view.open(player);
|
view.open(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ package cn.lunadeer.dominion.cuis;
|
|||||||
|
|
||||||
import cn.lunadeer.dominion.controllers.AbstractOperator;
|
import cn.lunadeer.dominion.controllers.AbstractOperator;
|
||||||
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
||||||
import cn.lunadeer.dominion.controllers.PrivilegeController;
|
import cn.lunadeer.dominion.controllers.MemberController;
|
||||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
import cn.lunadeer.dominion.tuis.dominion.manage.member.MemberList;
|
import cn.lunadeer.dominion.tuis.dominion.manage.member.MemberList;
|
||||||
import cn.lunadeer.dominion.tuis.dominion.manage.member.SelectPlayer;
|
import cn.lunadeer.dominion.tuis.dominion.manage.member.SelectPlayer;
|
||||||
@ -16,13 +16,13 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
|
||||||
public class CreatePrivilege {
|
public class MemberAdd {
|
||||||
|
|
||||||
private static class createPrivilegeCB implements CuiTextInput.InputCallback {
|
private static class memberAddCB implements CuiTextInput.InputCallback {
|
||||||
private final Player sender;
|
private final Player sender;
|
||||||
private final String dominionName;
|
private final String dominionName;
|
||||||
|
|
||||||
public createPrivilegeCB(Player sender, String dominionName) {
|
public memberAddCB(Player sender, String dominionName) {
|
||||||
this.sender = sender;
|
this.sender = sender;
|
||||||
this.dominionName = dominionName;
|
this.dominionName = dominionName;
|
||||||
}
|
}
|
||||||
@ -33,12 +33,12 @@ public class CreatePrivilege {
|
|||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
|
||||||
operator.getResponse().thenAccept(result -> {
|
operator.getResponse().thenAccept(result -> {
|
||||||
if (Objects.equals(result.getStatus(), AbstractOperator.Result.SUCCESS)) {
|
if (Objects.equals(result.getStatus(), AbstractOperator.Result.SUCCESS)) {
|
||||||
MemberList.show(sender, new String[]{"privilege_list", dominionName});
|
MemberList.show(sender, dominionName);
|
||||||
} else {
|
} else {
|
||||||
SelectPlayer.show(sender, new String[]{"select_player_create_privilege", dominionName});
|
SelectPlayer.show(sender, dominionName, 1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
PrivilegeController.createPrivilege(operator, input, dominionName);
|
MemberController.memberAdd(operator, dominionName, input);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,9 +50,9 @@ public class CreatePrivilege {
|
|||||||
Notification.error(sender, "领地不存在");
|
Notification.error(sender, "领地不存在");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
CuiTextInput.InputCallback createPrivilegeCB = new createPrivilegeCB(player, dominion.getName());
|
CuiTextInput.InputCallback createPrivilegeCB = new memberAddCB(player, dominion.getName());
|
||||||
CuiTextInput view = CuiTextInput.create(createPrivilegeCB).setText("Steve").title("输入玩家名称以添加为成员");
|
CuiTextInput view = CuiTextInput.create(createPrivilegeCB).setText("Steve").title("输入玩家名称以添加为成员");
|
||||||
view.setSuggestCommand("/dominion create_privilege <玩家名称> [领地名称]");
|
view.setSuggestCommand("/dominion member add <领地名称> <玩家名称>");
|
||||||
view.open(player);
|
view.open(player);
|
||||||
}
|
}
|
||||||
|
|
@ -31,11 +31,7 @@ public class RenameGroup {
|
|||||||
XLogger.debug("renameGroupCB.run: %s", input);
|
XLogger.debug("renameGroupCB.run: %s", input);
|
||||||
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
|
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
|
||||||
GroupController.renameGroup(operator, dominionName, oldName, input);
|
GroupController.renameGroup(operator, dominionName, oldName, input);
|
||||||
String[] newArgs = new String[3];
|
GroupSetting.show(sender, dominionName, input);
|
||||||
newArgs[0] = "group_manage";
|
|
||||||
newArgs[1] = dominionName;
|
|
||||||
newArgs[2] = input;
|
|
||||||
GroupSetting.show(sender, newArgs);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +45,7 @@ public class RenameGroup {
|
|||||||
}
|
}
|
||||||
CuiTextInput.InputCallback renameGroupCB = new renameGroupCB(player, dominion.getName(), args[2]);
|
CuiTextInput.InputCallback renameGroupCB = new renameGroupCB(player, dominion.getName(), args[2]);
|
||||||
CuiTextInput view = CuiTextInput.create(renameGroupCB).setText(args[2]).title("输入新的权限组名称");
|
CuiTextInput view = CuiTextInput.create(renameGroupCB).setText(args[2]).title("输入新的权限组名称");
|
||||||
view.setSuggestCommand("/dominion rename_group <领地名称> <权限组旧名称> <新名称>");
|
view.setSuggestCommand("/dominion group rename <领地名称> <权限组旧名称> <新名称>");
|
||||||
view.open(player);
|
view.open(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,6 +74,7 @@ public class GroupDTO {
|
|||||||
try (ResultSet rs = insertRow.execute()) {
|
try (ResultSet rs = insertRow.execute()) {
|
||||||
List<GroupDTO> groups = getDTOFromRS(rs);
|
List<GroupDTO> groups = getDTOFromRS(rs);
|
||||||
if (groups.size() == 0) return null;
|
if (groups.size() == 0) return null;
|
||||||
|
Cache.instance.loadGroup(groups.get(0).getId());
|
||||||
return groups.get(0);
|
return groups.get(0);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
DatabaseManager.handleDatabaseError("创建权限组失败: ", e, "");
|
DatabaseManager.handleDatabaseError("创建权限组失败: ", e, "");
|
||||||
|
@ -4,7 +4,6 @@ import cn.lunadeer.minecraftpluginutils.databse.DatabaseManager;
|
|||||||
import cn.lunadeer.minecraftpluginutils.databse.Field;
|
import cn.lunadeer.minecraftpluginutils.databse.Field;
|
||||||
import cn.lunadeer.minecraftpluginutils.databse.syntax.InsertRow;
|
import cn.lunadeer.minecraftpluginutils.databse.syntax.InsertRow;
|
||||||
import cn.lunadeer.minecraftpluginutils.databse.syntax.UpdateRow;
|
import cn.lunadeer.minecraftpluginutils.databse.syntax.UpdateRow;
|
||||||
import cn.lunadeer.dominion.Dominion;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ public class AllDominion {
|
|||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
if (notOp(player)) return;
|
if (notOp(player)) return;
|
||||||
int page = getPage(args);
|
int page = getPage(args, 1);
|
||||||
|
|
||||||
List<DominionNode> allDominions = Cache.instance.getAllDominionTree();
|
List<DominionNode> allDominions = Cache.instance.getAllDominionTree();
|
||||||
|
|
||||||
|
@ -14,18 +14,6 @@ import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
|||||||
|
|
||||||
public class Apis {
|
public class Apis {
|
||||||
|
|
||||||
public static int getPage(String[] args) {
|
|
||||||
int page = 1;
|
|
||||||
if (args.length == 2) {
|
|
||||||
try {
|
|
||||||
page = Integer.parseInt(args[1]);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return page;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getPage(String[] args, int pos) {
|
public static int getPage(String[] args, int pos) {
|
||||||
int page = 1;
|
int page = 1;
|
||||||
if (args.length > pos) {
|
if (args.length > pos) {
|
||||||
@ -54,22 +42,6 @@ public class Apis {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 尝试从 arg[2] 获取领地名称
|
|
||||||
* 如果没有此参数则会尝试获取玩家当前所在位置
|
|
||||||
*
|
|
||||||
* @param player 玩家
|
|
||||||
* @param args 参数
|
|
||||||
* @return 领地信息
|
|
||||||
*/
|
|
||||||
public static DominionDTO getDominionNameArg_2(Player player, String[] args) {
|
|
||||||
if (args.length >= 3) {
|
|
||||||
return DominionDTO.select(args[2]);
|
|
||||||
} else {
|
|
||||||
return Cache.instance.getPlayerCurrentDominion(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean noAuthToManage(Player player, DominionDTO dominion) {
|
public static boolean noAuthToManage(Player player, DominionDTO dominion) {
|
||||||
if (player.isOp()) return false;
|
if (player.isOp()) return false;
|
||||||
if (!dominion.getOwner().equals(player.getUniqueId())) {
|
if (!dominion.getOwner().equals(player.getUniqueId())) {
|
||||||
@ -93,11 +65,11 @@ public class Apis {
|
|||||||
public static void printHelp(CommandSender sender, String[] args) {
|
public static void printHelp(CommandSender sender, String[] args) {
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
int page = getPage(args);
|
int page = getPage(args, 1);
|
||||||
ListView view = ListView.create(10, "/dominion help");
|
ListView view = ListView.create(10, "/dominion help");
|
||||||
view.title("领地插件命令帮助 <>表示必填参数 []表示可选参数")
|
view.title("领地插件命令帮助 <>表示必填参数 []表示可选参数")
|
||||||
.add(Line.create().append("打开交互菜单").append(Button.create("/dominion menu").setExecuteCommand("/dominion menu").build()))
|
.add(Line.create().append("打开交互菜单").append("/dominion menu"))
|
||||||
.add(Line.create().append("查看帮助").append(Button.create("/dominion help [页码]").setExecuteCommand("/dominion help 1").build()))
|
.add(Line.create().append("查看帮助").append("/dominion help [页码]"))
|
||||||
.add(Line.create().append("创建领地").append("/dominion create <领地名称>"))
|
.add(Line.create().append("创建领地").append("/dominion create <领地名称>"))
|
||||||
.add(Line.create().append("自动创建领地").append("/dominion auto_create <领地名称>"))
|
.add(Line.create().append("自动创建领地").append("/dominion auto_create <领地名称>"))
|
||||||
.add(Line.create().append("创建子领地").append("/dominion create_sub <子领地名称> [父领地名称]"))
|
.add(Line.create().append("创建子领地").append("/dominion create_sub <子领地名称> [父领地名称]"))
|
||||||
@ -116,18 +88,6 @@ public class Apis {
|
|||||||
.add(Line.create().append("---[管理员指令]---"))
|
.add(Line.create().append("---[管理员指令]---"))
|
||||||
.add(Line.create().append("刷新缓存").append(Button.create("/dominion reload_cache").setExecuteCommand("/dominion reload_cache").build()))
|
.add(Line.create().append("刷新缓存").append(Button.create("/dominion reload_cache").setExecuteCommand("/dominion reload_cache").build()))
|
||||||
.add(Line.create().append("重载配置").append(Button.create("/dominion reload_config").setExecuteCommand("/dominion reload_config").build()))
|
.add(Line.create().append("重载配置").append(Button.create("/dominion reload_config").setExecuteCommand("/dominion reload_config").build()))
|
||||||
// 以下指令主要被用于 ui 触发
|
|
||||||
.add(Line.create().append("---[以下主要用于UI触发]---"))
|
|
||||||
.add(Line.create().append("列出所有领地").append(Button.create("/dominion list [页码]").setExecuteCommand("/dominion list").build()))
|
|
||||||
.add(Line.create().append("查看领地信息").append(Button.create("/dominion info [领地名称]").setExecuteCommand("/dominion info").build()))
|
|
||||||
.add(Line.create().append("查看领地权限信息").append(Button.create("/dominion flag_info <领地名称> [页码]").setExecuteCommand("/dominion flag_info").build()))
|
|
||||||
.add(Line.create().append("设置领地权限").append("/dominion set <权限名称> <true/false> [领地名称]"))
|
|
||||||
.add(Line.create().append("创建玩家特权").append("/dominion create_privilege <玩家名称> [领地名称]"))
|
|
||||||
.add(Line.create().append("设置玩家特权").append("/dominion set_privilege <玩家名称> <权限名称> <true/false> [领地名称]"))
|
|
||||||
.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 [页码]").setExecuteCommand("/dominion config").build()))
|
|
||||||
.showOn(player, page);
|
.showOn(player, page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ public class Menu {
|
|||||||
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
|
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
|
||||||
.append("查看我的领地");
|
.append("查看我的领地");
|
||||||
Line template = Line.create()
|
Line template = Line.create()
|
||||||
.append(Button.create("模板列表").setExecuteCommand("/dominion template_list").build())
|
.append(Button.create("模板列表").setExecuteCommand("/dominion template list").build())
|
||||||
.append("成员权限模板列表");
|
.append("成员权限模板列表");
|
||||||
Line help = Line.create()
|
Line help = Line.create()
|
||||||
.append(Button.create("指令帮助").setExecuteCommand("/dominion help").build())
|
.append(Button.create("指令帮助").setExecuteCommand("/dominion help").build())
|
||||||
|
@ -31,13 +31,7 @@ public class MigrateList {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int page = 1;
|
int page = Apis.getPage(args, 1);
|
||||||
if (args.length == 2) {
|
|
||||||
try {
|
|
||||||
page = Integer.parseInt(args[1]);
|
|
||||||
} catch (Exception ignored) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ListView view = ListView.create(10, "/dominion migrate_list");
|
ListView view = ListView.create(10, "/dominion migrate_list");
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ public class SysConfig {
|
|||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
if (notOp(player)) return;
|
if (notOp(player)) return;
|
||||||
int page = getPage(args);
|
int page = getPage(args, 1);
|
||||||
ListView view = ListView.create(10, "/dominion sys_config");
|
ListView view = ListView.create(10, "/dominion sys_config");
|
||||||
view.title("系统配置");
|
view.title("系统配置");
|
||||||
view.navigator(Line.create().append(Button.create("主菜单").setExecuteCommand("/dominion menu").build()).append("系统配置"));
|
view.navigator(Line.create().append(Button.create("主菜单").setExecuteCommand("/dominion menu").build()).append("系统配置"));
|
||||||
|
@ -22,7 +22,7 @@ public class DominionList {
|
|||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
int page = getPage(args);
|
int page = getPage(args, 1);
|
||||||
ListView view = ListView.create(10, "/dominion list");
|
ListView view = ListView.create(10, "/dominion list");
|
||||||
|
|
||||||
view.title("我的领地列表");
|
view.title("我的领地列表");
|
||||||
|
@ -2,7 +2,6 @@ package cn.lunadeer.dominion.tuis.dominion;
|
|||||||
|
|
||||||
import cn.lunadeer.dominion.Dominion;
|
import cn.lunadeer.dominion.Dominion;
|
||||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
import cn.lunadeer.dominion.tuis.Apis;
|
|
||||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||||
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
||||||
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
||||||
@ -13,8 +12,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
import static cn.lunadeer.dominion.tuis.Apis.getDominionNameArg_1;
|
import static cn.lunadeer.dominion.tuis.Apis.*;
|
||||||
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
|
|
||||||
|
|
||||||
public class DominionManage {
|
public class DominionManage {
|
||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
@ -26,7 +24,7 @@ public class DominionManage {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (noAuthToManage(player, dominion)) return;
|
if (noAuthToManage(player, dominion)) return;
|
||||||
int page = Apis.getPage(args, 2);
|
int page = getPage(args, 2);
|
||||||
Line size_info = Line.create()
|
Line size_info = Line.create()
|
||||||
.append(Button.create("详细信息").setExecuteCommand("/dominion info " + dominion.getName()).build())
|
.append(Button.create("详细信息").setExecuteCommand("/dominion info " + dominion.getName()).build())
|
||||||
.append("查看领地详细信息");
|
.append("查看领地详细信息");
|
||||||
@ -37,10 +35,10 @@ public class DominionManage {
|
|||||||
.append(Button.create("访客权限").setExecuteCommand("/dominion guest_setting " + dominion.getName()).build())
|
.append(Button.create("访客权限").setExecuteCommand("/dominion guest_setting " + dominion.getName()).build())
|
||||||
.append("访客在此领地的权限");
|
.append("访客在此领地的权限");
|
||||||
Line privilege_list = Line.create()
|
Line privilege_list = Line.create()
|
||||||
.append(Button.create("成员管理").setExecuteCommand("/dominion member_list " + dominion.getName()).build())
|
.append(Button.create("成员管理").setExecuteCommand("/dominion member list " + dominion.getName()).build())
|
||||||
.append("管理此领地成员的权限");
|
.append("管理此领地成员的权限");
|
||||||
Line group_list = Line.create()
|
Line group_list = Line.create()
|
||||||
.append(Button.create("权限组").setExecuteCommand("/dominion group_list " + dominion.getName()).build())
|
.append(Button.create("权限组").setExecuteCommand("/dominion group list " + dominion.getName()).build())
|
||||||
.append("管理此领地的权限组");
|
.append("管理此领地的权限组");
|
||||||
Line set_tp = Line.create()
|
Line set_tp = Line.create()
|
||||||
.append(Button.create("设置传送点").setExecuteCommand("/dominion set_tp_location " + dominion.getName()).build())
|
.append(Button.create("设置传送点").setExecuteCommand("/dominion set_tp_location " + dominion.getName()).build())
|
||||||
|
@ -11,8 +11,6 @@ import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
|||||||
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
||||||
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
|
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.format.Style;
|
|
||||||
import net.kyori.adventure.text.format.TextDecoration;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@ -23,22 +21,30 @@ import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
|
|||||||
|
|
||||||
public class GroupList {
|
public class GroupList {
|
||||||
|
|
||||||
|
public static void show(CommandSender sender, String dominionName) {
|
||||||
|
show(sender, new String[]{"", "", dominionName});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void show(CommandSender sender, String dominionName, int page) {
|
||||||
|
show(sender, new String[]{"", "", dominionName, String.valueOf(page)});
|
||||||
|
}
|
||||||
|
|
||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
if (args.length < 2) {
|
if (args.length < 3) {
|
||||||
Notification.error(sender, "用法: /dominion group_list <领地名称> [页码]");
|
Notification.error(sender, "用法: /dominion group list <领地名称> [页码]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
DominionDTO dominion = DominionDTO.select(args[1]);
|
DominionDTO dominion = DominionDTO.select(args[2]);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
Notification.error(sender, "领地 %s 不存在", args[1]);
|
Notification.error(sender, "领地 %s 不存在", args[2]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (noAuthToManage(player, dominion)) return;
|
if (noAuthToManage(player, dominion)) return;
|
||||||
int page = Apis.getPage(args, 2);
|
int page = Apis.getPage(args, 3);
|
||||||
List<GroupDTO> groups = GroupDTO.selectByDominionId(dominion.getId());
|
List<GroupDTO> groups = GroupDTO.selectByDominionId(dominion.getId());
|
||||||
ListView view = ListView.create(10, "/dominion group_list " + dominion.getName());
|
ListView view = ListView.create(10, "/dominion group list " + dominion.getName());
|
||||||
view.title("权限组列表");
|
view.title("权限组列表");
|
||||||
view.navigator(
|
view.navigator(
|
||||||
Line.create()
|
Line.create()
|
||||||
@ -57,13 +63,13 @@ public class GroupList {
|
|||||||
Line line = new Line();
|
Line line = new Line();
|
||||||
Button del = Button.createRed("删除")
|
Button del = Button.createRed("删除")
|
||||||
.setHoverText("删除权限组 " + group.getName())
|
.setHoverText("删除权限组 " + group.getName())
|
||||||
.setExecuteCommand("/dominion delete_group " + dominion.getName() + " " + group.getName());
|
.setExecuteCommand("/dominion group delete " + dominion.getName() + " " + group.getName());
|
||||||
Button edit = Button.create("编辑")
|
Button edit = Button.create("编辑")
|
||||||
.setHoverText("编辑权限组 " + group.getName())
|
.setHoverText("编辑权限组 " + group.getName())
|
||||||
.setExecuteCommand("/dominion group_setting " + dominion.getName() + " " + group.getName());
|
.setExecuteCommand("/dominion group setting " + dominion.getName() + " " + group.getName());
|
||||||
Button add = Button.createGreen("+")
|
Button add = Button.createGreen("+")
|
||||||
.setHoverText("添加成员到权限组 " + group.getName())
|
.setHoverText("添加成员到权限组 " + group.getName())
|
||||||
.setExecuteCommand("/dominion select_member_add_group " + dominion.getName() + " " + group.getName() + " " + page);
|
.setExecuteCommand("/dominion group select_member " + dominion.getName() + " " + group.getName() + " " + page);
|
||||||
line.append(del.build()).append(edit.build()).append(group.getName()).append(add.build());
|
line.append(del.build()).append(edit.build()).append(group.getName()).append(add.build());
|
||||||
view.add(line);
|
view.add(line);
|
||||||
List<PlayerPrivilegeDTO> players = PlayerPrivilegeDTO.selectByGroupId(group.getId());
|
List<PlayerPrivilegeDTO> players = PlayerPrivilegeDTO.selectByGroupId(group.getId());
|
||||||
@ -73,7 +79,7 @@ public class GroupList {
|
|||||||
if (p == null) continue;
|
if (p == null) continue;
|
||||||
Button remove = Button.createRed("-")
|
Button remove = Button.createRed("-")
|
||||||
.setHoverText("把 " + p.getLastKnownName() + " 移出权限组 " + group.getName())
|
.setHoverText("把 " + p.getLastKnownName() + " 移出权限组 " + group.getName())
|
||||||
.setExecuteCommand("/dominion group_remove_member " + dominion.getName() + " " + group.getName() + " " + p.getLastKnownName() + " " + page);
|
.setExecuteCommand("/dominion group remove_member " + dominion.getName() + " " + group.getName() + " " + p.getLastKnownName() + " " + page);
|
||||||
Line playerLine = new Line().setDivider("");
|
Line playerLine = new Line().setDivider("");
|
||||||
playerLine.append(Component.text(" "));
|
playerLine.append(Component.text(" "));
|
||||||
playerLine.append(remove.build()).append(" | " + p.getLastKnownName());
|
playerLine.append(remove.build()).append(" | " + p.getLastKnownName());
|
||||||
|
@ -16,34 +16,42 @@ import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
|||||||
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
|
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
|
||||||
|
|
||||||
public class GroupSetting {
|
public class GroupSetting {
|
||||||
|
public static void show(CommandSender sender, String dominionName, String groupName) {
|
||||||
|
show(sender, new String[]{"", "", dominionName, groupName});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void show(CommandSender sender, String dominionName, String groupName, Integer page) {
|
||||||
|
show(sender, new String[]{"", "", dominionName, groupName, page.toString()});
|
||||||
|
}
|
||||||
|
|
||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
if (args.length < 3) {
|
if (args.length < 4) {
|
||||||
Notification.error(sender, "用法: /dominion group_setting <领地名称> <权限组名称> [页码]");
|
Notification.error(sender, "用法: /dominion group setting <领地名称> <权限组名称> [页码]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
DominionDTO dominion = DominionDTO.select(args[1]);
|
DominionDTO dominion = DominionDTO.select(args[2]);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
Notification.error(sender, "领地 %s 不存在", args[1]);
|
Notification.error(sender, "领地 %s 不存在", args[2]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (noAuthToManage(player, dominion)) return;
|
if (noAuthToManage(player, dominion)) return;
|
||||||
int page = Apis.getPage(args, 3);
|
int page = Apis.getPage(args, 4);
|
||||||
GroupDTO group = GroupDTO.select(dominion.getId(), args[2]);
|
GroupDTO group = GroupDTO.select(dominion.getId(), args[3]);
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
Notification.error(sender, "权限组 %s 不存在", args[2]);
|
Notification.error(sender, "权限组 %s 不存在", args[3]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ListView view = ListView.create(10, "/dominion group_setting " + dominion.getName() + " " + group.getName());
|
ListView view = ListView.create(10, "/dominion group setting " + dominion.getName() + " " + group.getName());
|
||||||
view.title("权限组 " + group.getName() + " 管理");
|
view.title("权限组 " + group.getName() + " 管理");
|
||||||
view.navigator(
|
view.navigator(
|
||||||
Line.create()
|
Line.create()
|
||||||
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
|
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
|
||||||
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
|
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
|
||||||
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
|
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
|
||||||
.append(Button.create("权限组列表").setExecuteCommand("/dominion group_list " + dominion.getName()).build())
|
.append(Button.create("权限组列表").setExecuteCommand("/dominion group list " + dominion.getName()).build())
|
||||||
.append("权限组管理")
|
.append("权限组管理")
|
||||||
);
|
);
|
||||||
Button rename_btn = Button.create("重命名此权限组")
|
Button rename_btn = Button.create("重命名此权限组")
|
||||||
@ -54,14 +62,14 @@ public class GroupSetting {
|
|||||||
if (group.getAdmin()) {
|
if (group.getAdmin()) {
|
||||||
view.add(Line.create()
|
view.add(Line.create()
|
||||||
.append(Button.createGreen("☑")
|
.append(Button.createGreen("☑")
|
||||||
.setExecuteCommand(String.format("/dominion set_group_flag %s %s admin false %s", dominion.getName(), group.getName(), page))
|
.setExecuteCommand(parseCommand(dominion.getName(), group.getName(), "admin", false, page))
|
||||||
.build())
|
.build())
|
||||||
.append("管理员"));
|
.append("管理员"));
|
||||||
view.add(createOption(Flag.GLOW, group.getFlagValue(Flag.GLOW), dominion.getName(), group.getName(), page));
|
view.add(createOption(Flag.GLOW, group.getFlagValue(Flag.GLOW), dominion.getName(), group.getName(), page));
|
||||||
} else {
|
} else {
|
||||||
view.add(Line.create()
|
view.add(Line.create()
|
||||||
.append(Button.createRed("☐")
|
.append(Button.createRed("☐")
|
||||||
.setExecuteCommand(String.format("/dominion set_group_flag %s %s admin true %s", dominion.getName(), group.getName(), page))
|
.setExecuteCommand(parseCommand(dominion.getName(), group.getName(), "admin", true, page))
|
||||||
.build())
|
.build())
|
||||||
.append("管理员"));
|
.append("管理员"));
|
||||||
for (Flag flag : Flag.getPrivilegeFlagsEnabled()) {
|
for (Flag flag : Flag.getPrivilegeFlagsEnabled()) {
|
||||||
@ -75,15 +83,19 @@ public class GroupSetting {
|
|||||||
if (value) {
|
if (value) {
|
||||||
return Line.create()
|
return Line.create()
|
||||||
.append(Button.createGreen("☑")
|
.append(Button.createGreen("☑")
|
||||||
.setExecuteCommand(String.format("/dominion set_group_flag %s %s %s false %s", DominionName, groupName, flag.getFlagName(), page))
|
.setExecuteCommand(parseCommand(DominionName, groupName, flag.getFlagName(), false, page))
|
||||||
.build())
|
.build())
|
||||||
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
||||||
} else {
|
} else {
|
||||||
return Line.create()
|
return Line.create()
|
||||||
.append(Button.createRed("☐")
|
.append(Button.createRed("☐")
|
||||||
.setExecuteCommand(String.format("/dominion set_group_flag %s %s %s true %s", DominionName, groupName, flag.getFlagName(), page))
|
.setExecuteCommand(parseCommand(DominionName, groupName, flag.getFlagName(), true, page))
|
||||||
.build())
|
.build())
|
||||||
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String parseCommand(String dominionName, String groupName, String flagName, boolean value, int page) {
|
||||||
|
return String.format("/dominion group set_flag %s %s %s %s %d", dominionName, groupName, flagName, value, page);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,32 +14,33 @@ import org.bukkit.entity.Player;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
import static cn.lunadeer.dominion.tuis.Apis.*;
|
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
|
||||||
|
|
||||||
public class SelectMember {
|
public class SelectMember {
|
||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
if (args.length < 3) {
|
if (args.length < 4) {
|
||||||
Notification.error(sender, "用法: /dominion select_member_add_group <领地名称> <权限组名称> [页码]");
|
Notification.error(sender, "用法: /dominion group select_member <领地名称> <权限组名称> [页码]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
DominionDTO dominion = DominionDTO.select(args[1]);
|
DominionDTO dominion = DominionDTO.select(args[2]);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
Notification.error(sender, "领地不存在");
|
Notification.error(sender, "领地 %s 不存在", args[2]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (noAuthToManage(player, dominion)) return;
|
if (noAuthToManage(player, dominion)) return;
|
||||||
GroupDTO group = GroupDTO.select(dominion.getId(), args[2]);
|
GroupDTO group = GroupDTO.select(dominion.getId(), args[3]);
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
Notification.error(sender, "权限组不存在");
|
Notification.error(sender, "权限组不存在");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int backPage = getPage(args, 3);
|
int backPage = getPage(args, 4);
|
||||||
ListView view = ListView.create(10, "/dominion select_member_add_group " + dominion.getName() + " " + group.getName() + " " + backPage);
|
ListView view = ListView.create(10, "/dominion group select_member " + dominion.getName() + " " + group.getName() + " " + backPage);
|
||||||
view.title("选择成员");
|
view.title("选择成员");
|
||||||
Line sub = Line.create().append("选择成员添加到权限组 " + group.getName())
|
Line sub = Line.create().append("选择成员添加到权限组 " + group.getName())
|
||||||
.append(Button.create("返回").setExecuteCommand("/dominion group_list " + dominion.getName() + " " + backPage).build());
|
.append(Button.create("返回").setExecuteCommand("/dominion group list " + dominion.getName() + " " + backPage).build());
|
||||||
view.subtitle(sub);
|
view.subtitle(sub);
|
||||||
List<PlayerPrivilegeDTO> members = PlayerPrivilegeDTO.selectByGroupId(-1);
|
List<PlayerPrivilegeDTO> members = PlayerPrivilegeDTO.selectByGroupId(-1);
|
||||||
for (PlayerPrivilegeDTO member : members) {
|
for (PlayerPrivilegeDTO member : members) {
|
||||||
@ -47,7 +48,7 @@ public class SelectMember {
|
|||||||
if (p == null) continue;
|
if (p == null) continue;
|
||||||
view.add(Line.create()
|
view.add(Line.create()
|
||||||
.append(Button.create(p.getLastKnownName())
|
.append(Button.create(p.getLastKnownName())
|
||||||
.setExecuteCommand("/dominion group_add_member " + dominion.getName() + " " + group.getName() + " " + p.getLastKnownName() + " " + backPage)
|
.setExecuteCommand("/dominion group add_member " + dominion.getName() + " " + group.getName() + " " + p.getLastKnownName() + " " + backPage)
|
||||||
.build()));
|
.build()));
|
||||||
}
|
}
|
||||||
view.showOn(player, backPage);
|
view.showOn(player, backPage);
|
||||||
|
@ -15,25 +15,35 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.CommandParser;
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
import static cn.lunadeer.dominion.tuis.Apis.*;
|
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
|
||||||
|
|
||||||
public class MemberList {
|
public class MemberList {
|
||||||
|
|
||||||
|
public static void show(CommandSender sender, String dominionName, Integer page) {
|
||||||
|
show(sender, new String[]{"", "", dominionName, page.toString()});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void show(CommandSender sender, String dominionName) {
|
||||||
|
show(sender, new String[]{"", "", dominionName});
|
||||||
|
}
|
||||||
|
|
||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
if (args.length < 2) {
|
if (args.length < 3) {
|
||||||
Notification.error(sender, "用法: /dominion member_list <领地名称> [页码]");
|
Notification.error(sender, "用法: /dominion member list <领地名称> [页码]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
DominionDTO dominion = DominionDTO.select(args[1]);
|
DominionDTO dominion = DominionDTO.select(args[2]);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
Notification.error(sender, "领地 %s 不存在", args[1]);
|
Notification.error(sender, "领地 %s 不存在", args[2]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int page = getPage(args, 2);
|
int page = getPage(args, 3);
|
||||||
ListView view = ListView.create(10, "/dominion member_list " + dominion.getName());
|
ListView view = ListView.create(10, "/dominion member list " + dominion.getName());
|
||||||
if (noAuthToManage(player, dominion)) return;
|
if (noAuthToManage(player, dominion)) return;
|
||||||
List<PlayerPrivilegeDTO> privileges = PlayerPrivilegeDTO.select(dominion.getId());
|
List<PlayerPrivilegeDTO> privileges = PlayerPrivilegeDTO.select(dominion.getId());
|
||||||
view.title("领地 " + dominion.getName() + " 成员列表");
|
view.title("领地 " + dominion.getName() + " 成员列表");
|
||||||
@ -44,7 +54,8 @@ public class MemberList {
|
|||||||
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
|
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
|
||||||
.append("成员列表")
|
.append("成员列表")
|
||||||
);
|
);
|
||||||
view.add(Line.create().append(Button.create("添加成员").setExecuteCommand("/dominion select_player_create_privilege " + dominion.getName()).build()));
|
view.add(Line.create().append(Button.create("添加成员")
|
||||||
|
.setExecuteCommand(CommandParser("/dominion member select_player %s", dominion.getName())).build()));
|
||||||
for (PlayerPrivilegeDTO privilege : privileges) {
|
for (PlayerPrivilegeDTO privilege : privileges) {
|
||||||
PlayerDTO p_player = PlayerDTO.select(privilege.getPlayerUUID());
|
PlayerDTO p_player = PlayerDTO.select(privilege.getPlayerUUID());
|
||||||
if (p_player == null) continue;
|
if (p_player == null) continue;
|
||||||
@ -65,10 +76,10 @@ public class MemberList {
|
|||||||
|
|
||||||
Button prev = Button.createGreen("权限")
|
Button prev = Button.createGreen("权限")
|
||||||
.setHoverText("配置成员权限")
|
.setHoverText("配置成员权限")
|
||||||
.setExecuteCommand("/dominion member_setting " + p_player.getLastKnownName() + " " + dominion.getName());
|
.setExecuteCommand(CommandParser("/dominion member setting %s %s", dominion.getName(), p_player.getLastKnownName()));
|
||||||
Button remove = Button.createRed("移除")
|
Button remove = Button.createRed("移除")
|
||||||
.setHoverText("将此成员移出(变为访客)")
|
.setHoverText("将此成员移出(变为访客)")
|
||||||
.setExecuteCommand("/dominion clear_privilege " + p_player.getLastKnownName() + " " + dominion.getName() + " b");
|
.setExecuteCommand(CommandParser("/dominion member remove %s %s", dominion.getName(), p_player.getLastKnownName()));
|
||||||
|
|
||||||
if (!player.getUniqueId().equals(dominion.getOwner())) {
|
if (!player.getUniqueId().equals(dominion.getOwner())) {
|
||||||
boolean disable = false;
|
boolean disable = false;
|
||||||
|
@ -13,26 +13,34 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
import static cn.lunadeer.dominion.tuis.Apis.*;
|
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
|
||||||
|
|
||||||
public class MemberSetting {
|
public class MemberSetting {
|
||||||
// /dominion member_setting <玩家名称> [领地名称] [页码]
|
public static void show(CommandSender sender, String dominionName, String playerName, Integer page) {
|
||||||
|
show(sender, new String[]{"", "", dominionName, playerName, page.toString()});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void show(CommandSender sender, String dominionName, String playerName) {
|
||||||
|
show(sender, new String[]{"", "", dominionName, playerName});
|
||||||
|
}
|
||||||
|
|
||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
if (args.length < 2) {
|
if (args.length < 3) {
|
||||||
Notification.error(sender, "用法: /dominion member_setting <玩家名称> [领地名称] [页码]");
|
Notification.error(sender, "用法: /dominion member setting <领地名称> <玩家名称> [页码]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
DominionDTO dominion = getDominionNameArg_2(player, args);
|
DominionDTO dominion = DominionDTO.select(args[2]);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion member_setting <玩家名称> [领地名称]");
|
Notification.error(sender, "领地 %s 不存在", args[2]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
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;
|
if (noAuthToManage(player, dominion)) return;
|
||||||
|
int page = getPage(args, 4);
|
||||||
|
String playerName = args[3];
|
||||||
|
ListView view = ListView.create(10, "/dominion member setting " + dominion.getName() + " " + playerName);
|
||||||
PlayerDTO playerDTO = PlayerDTO.select(playerName);
|
PlayerDTO playerDTO = PlayerDTO.select(playerName);
|
||||||
if (playerDTO == null) {
|
if (playerDTO == null) {
|
||||||
Notification.error(sender, "玩家 %s 不存在", playerName);
|
Notification.error(sender, "玩家 %s 不存在", playerName);
|
||||||
@ -49,20 +57,24 @@ public class MemberSetting {
|
|||||||
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
|
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
|
||||||
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
|
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
|
||||||
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
|
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
|
||||||
.append(Button.create("成员列表").setExecuteCommand("/dominion member_list " + dominion.getName()).build())
|
.append(Button.create("成员列表").setExecuteCommand("/dominion member list " + dominion.getName()).build())
|
||||||
.append("成员权限")
|
.append("成员权限")
|
||||||
);
|
);
|
||||||
view.add(Line.create().append(Button.createGreen("套用模板")
|
view.add(Line.create().append(Button.createGreen("套用模板")
|
||||||
.setHoverText("选择一个权限模板套用")
|
.setHoverText("选择一个权限模板套用")
|
||||||
.setExecuteCommand("/dominion select_template " + playerName + " " + dominion.getName()).build()));
|
.setExecuteCommand("/dominion member select_template " + dominion.getName() + " " + playerName).build()));
|
||||||
if (privilege.getAdmin()) {
|
if (privilege.getAdmin()) {
|
||||||
view.add(Line.create()
|
view.add(Line.create()
|
||||||
.append(Button.createGreen("☑").setExecuteCommand("/dominion set_privilege " + playerName + " admin false " + dominion.getName() + " " + page).build())
|
.append(Button.createGreen("☑").setExecuteCommand(
|
||||||
|
parseCommand(dominion.getName(), playerName, "admin", false, page)
|
||||||
|
).build())
|
||||||
.append("管理员"));
|
.append("管理员"));
|
||||||
view.add(createOption(Flag.GLOW, privilege.getFlagValue(Flag.GLOW), playerName, dominion.getName(), page));
|
view.add(createOption(Flag.GLOW, privilege.getFlagValue(Flag.GLOW), playerName, dominion.getName(), page));
|
||||||
} else {
|
} else {
|
||||||
view.add(Line.create()
|
view.add(Line.create()
|
||||||
.append(Button.createRed("☐").setExecuteCommand("/dominion set_privilege " + playerName + " admin true " + dominion.getName() + " " + page).build())
|
.append(Button.createRed("☐").setExecuteCommand(
|
||||||
|
parseCommand(dominion.getName(), playerName, "admin", true, page)
|
||||||
|
).build())
|
||||||
.append("管理员"));
|
.append("管理员"));
|
||||||
for (Flag flag : Flag.getPrivilegeFlagsEnabled()) {
|
for (Flag flag : Flag.getPrivilegeFlagsEnabled()) {
|
||||||
view.add(createOption(flag, privilege.getFlagValue(flag), playerName, dominion.getName(), page));
|
view.add(createOption(flag, privilege.getFlagValue(flag), playerName, dominion.getName(), page));
|
||||||
@ -74,12 +86,20 @@ public class MemberSetting {
|
|||||||
private static Line createOption(Flag flag, boolean value, String player_name, String dominion_name, int page) {
|
private static Line createOption(Flag flag, boolean value, String player_name, String dominion_name, int page) {
|
||||||
if (value) {
|
if (value) {
|
||||||
return Line.create()
|
return Line.create()
|
||||||
.append(Button.createGreen("☑").setExecuteCommand("/dominion set_privilege " + player_name + " " + flag.getFlagName() + " false " + dominion_name + " " + page).build())
|
.append(Button.createGreen("☑").setExecuteCommand(
|
||||||
|
parseCommand(dominion_name, player_name, flag.getFlagName(), false, page)
|
||||||
|
).build())
|
||||||
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
||||||
} else {
|
} else {
|
||||||
return Line.create()
|
return Line.create()
|
||||||
.append(Button.createRed("☐").setExecuteCommand("/dominion set_privilege " + player_name + " " + flag.getFlagName() + " true " + dominion_name + " " + page).build())
|
.append(Button.createRed("☐").setExecuteCommand(
|
||||||
|
parseCommand(dominion_name, player_name, flag.getFlagName(), true, page)
|
||||||
|
).build())
|
||||||
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String parseCommand(String dominionName, String playerName, String flagName, boolean value, int page) {
|
||||||
|
return String.format("/dominion member set_flag %s %s %s %s %d", dominionName, playerName, flagName, value, page);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,25 +11,29 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.CommandParser;
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
||||||
|
|
||||||
public class SelectPlayer {
|
public class SelectPlayer {
|
||||||
// /dominion select_player_create_privilege <领地名称> [页码]
|
public static void show(CommandSender sender, String dominionName, Integer page) {
|
||||||
|
show(sender, new String[]{"", "", dominionName, page.toString()});
|
||||||
|
}
|
||||||
|
|
||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
if (args.length < 2) {
|
if (args.length < 3) {
|
||||||
Notification.error(sender, "用法: /dominion select_player_create_privilege <领地名称> [页码]");
|
Notification.error(sender, "用法: /dominion member select_player <领地名称> [页码]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
int page = getPage(args, 2);
|
int page = getPage(args, 3);
|
||||||
String dominion_name = args[1];
|
String dominion_name = args[2];
|
||||||
ListView view = ListView.create(10, "/dominion select_player_create_privilege " + dominion_name);
|
ListView view = ListView.create(10, "/dominion member select_player " + dominion_name);
|
||||||
Line sub = Line.create()
|
Line sub = Line.create()
|
||||||
.append("只能选择已经登录过的玩家")
|
.append("只能选择已经登录过的玩家")
|
||||||
.append(Button.create("搜索").setExecuteCommand("/dominion cui_create_privilege " + dominion_name).build())
|
.append(Button.create("搜索").setExecuteCommand("/dominion cui_member_add " + dominion_name).build())
|
||||||
.append(Button.create("返回").setExecuteCommand("/dominion member_list " + dominion_name).build());
|
.append(Button.create("返回").setExecuteCommand("/dominion member list " + dominion_name).build());
|
||||||
view.title("选择玩家添加为成员").subtitle(sub);
|
view.title("选择玩家添加为成员").subtitle(sub);
|
||||||
List<PlayerDTO> players = PlayerController.allPlayers();
|
List<PlayerDTO> players = PlayerController.allPlayers();
|
||||||
for (PlayerDTO p : players) {
|
for (PlayerDTO p : players) {
|
||||||
@ -38,7 +42,7 @@ public class SelectPlayer {
|
|||||||
}
|
}
|
||||||
view.add(Line.create().
|
view.add(Line.create().
|
||||||
append(Button.create(p.getLastKnownName())
|
append(Button.create(p.getLastKnownName())
|
||||||
.setExecuteCommand("/dominion create_privilege " + p.getLastKnownName() + " " + dominion_name + " b")
|
.setExecuteCommand(CommandParser("/dominion member add %s %s", dominion_name, p.getLastKnownName()))
|
||||||
.build()));
|
.build()));
|
||||||
}
|
}
|
||||||
view.showOn(player, page);
|
view.showOn(player, page);
|
||||||
|
@ -11,40 +11,42 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.CommandParser;
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
||||||
|
|
||||||
public class SelectTemplate {
|
public class SelectTemplate {
|
||||||
|
|
||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
if (args.length < 3) {
|
if (args.length < 4) {
|
||||||
// /dominion select_template <玩家名称> <领地名称> [页码]
|
// /dominion member select_template <领地名称> <玩家名称> [页码]
|
||||||
Notification.error(sender, "用法: /dominion select_template <玩家名称> <领地名称> [页码]");
|
Notification.error(sender, "用法: /dominion member select_template <领地名称> <玩家名称> [页码]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
|
|
||||||
String playerName = args[1];
|
|
||||||
String dominionName = args[2];
|
String dominionName = args[2];
|
||||||
|
String playerName = args[3];
|
||||||
|
|
||||||
int page = getPage(args, 3);
|
|
||||||
|
int page = getPage(args, 4);
|
||||||
|
|
||||||
List<PrivilegeTemplateDTO> templates = PrivilegeTemplateDTO.selectAll(player.getUniqueId());
|
List<PrivilegeTemplateDTO> templates = PrivilegeTemplateDTO.selectAll(player.getUniqueId());
|
||||||
|
|
||||||
ListView view = ListView.create(10, "/dominion select_template " + playerName + " " + dominionName);
|
ListView view = ListView.create(10, "/dominion member select_template " + dominionName + " " + playerName);
|
||||||
view.title("选择一个模板");
|
view.title("选择一个模板");
|
||||||
Line sub = Line.create()
|
Line sub = Line.create()
|
||||||
.append("套用在领地 " + dominionName + " 的成员 " + playerName + " 身上")
|
.append("套用在领地 " + dominionName + " 的成员 " + playerName + " 身上")
|
||||||
.append(Button.create("返回").setExecuteCommand("/dominion member_setting " + playerName + " " + dominionName).build());
|
.append(Button.create("返回").setExecuteCommand("/dominion member setting " + dominionName + " " + playerName).build());
|
||||||
view.subtitle(sub);
|
view.subtitle(sub);
|
||||||
|
|
||||||
for (PrivilegeTemplateDTO template : templates) {
|
for (PrivilegeTemplateDTO template : templates) {
|
||||||
// /dominion apply_template <玩家名称> <领地名称> <模板名称>
|
// /dominion member apply_template <领地名称> <成员名称> <模板名称>
|
||||||
view.add(Line.create()
|
view.add(Line.create()
|
||||||
.append(Button.create("选择")
|
.append(Button.create("选择")
|
||||||
.setExecuteCommand("/dominion apply_template " + playerName + " " + dominionName + " " + template.getName())
|
.setExecuteCommand(CommandParser("/dominion member apply_template %s %s %s", dominionName, playerName, template.getName()))
|
||||||
.build())
|
.build())
|
||||||
.append(Component.text(template.getName())));
|
.append(Component.text(template.getName())));
|
||||||
}
|
}
|
||||||
|
@ -14,11 +14,19 @@ import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
|||||||
|
|
||||||
public class TemplateList {
|
public class TemplateList {
|
||||||
|
|
||||||
|
public static void show(CommandSender sender) {
|
||||||
|
show(sender, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void show(CommandSender sender, int page) {
|
||||||
|
show(sender, new String[]{"", "", String.valueOf(page)});
|
||||||
|
}
|
||||||
|
|
||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
int page = getPage(args);
|
int page = getPage(args, 2);
|
||||||
ListView view = ListView.create(10, "/dominion template_list");
|
ListView view = ListView.create(10, "/dominion template list");
|
||||||
|
|
||||||
List<PrivilegeTemplateDTO> templates = PrivilegeTemplateDTO.selectAll(player.getUniqueId());
|
List<PrivilegeTemplateDTO> templates = PrivilegeTemplateDTO.selectAll(player.getUniqueId());
|
||||||
view.title("成员权限模板列表");
|
view.title("成员权限模板列表");
|
||||||
@ -30,8 +38,8 @@ public class TemplateList {
|
|||||||
view.add(Line.create().append(create.build()));
|
view.add(Line.create().append(create.build()));
|
||||||
|
|
||||||
for (PrivilegeTemplateDTO template : templates) {
|
for (PrivilegeTemplateDTO template : templates) {
|
||||||
Button manage = Button.createGreen("配置").setExecuteCommand("/dominion template_manage " + template.getName());
|
Button manage = Button.createGreen("配置").setExecuteCommand("/dominion template setting " + template.getName());
|
||||||
Button delete = Button.createRed("删除").setExecuteCommand("/dominion template_delete " + template.getName());
|
Button delete = Button.createRed("删除").setExecuteCommand("/dominion template delete " + template.getName());
|
||||||
Line line = Line.create()
|
Line line = Line.create()
|
||||||
.append(delete.build())
|
.append(delete.build())
|
||||||
.append(manage.build())
|
.append(manage.build())
|
||||||
|
@ -11,31 +11,34 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
||||||
|
|
||||||
public class TemplateManage {
|
public class TemplateSetting {
|
||||||
|
|
||||||
|
// /dominion template setting <模板名称> [页码]
|
||||||
|
public static void show(CommandSender sender, String templateName, int page) {
|
||||||
|
show(sender, new String[]{"", "", templateName, String.valueOf(page)});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void show(CommandSender sender, String templateName) {
|
||||||
|
show(sender, new String[]{"", "", templateName});
|
||||||
|
}
|
||||||
|
|
||||||
// /dominion template_manage <模板名称> [页码]
|
|
||||||
public static void show(CommandSender sender, String[] args) {
|
public static void show(CommandSender sender, String[] args) {
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
int page = 1;
|
int page = getPage(args, 3);
|
||||||
if (args.length == 3) {
|
PrivilegeTemplateDTO template = PrivilegeTemplateDTO.select(player.getUniqueId(), args[2]);
|
||||||
try {
|
|
||||||
page = Integer.parseInt(args[2]);
|
|
||||||
} catch (Exception ignored) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
PrivilegeTemplateDTO template = PrivilegeTemplateDTO.select(player.getUniqueId(), args[1]);
|
|
||||||
if (template == null) {
|
if (template == null) {
|
||||||
Notification.error(sender, "模板 %s 不存在", args[1]);
|
Notification.error(sender, "模板 %s 不存在", args[2]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ListView view = ListView.create(10, "/dominion template_manage " + template.getName());
|
ListView view = ListView.create(10, "/dominion template manage " + template.getName());
|
||||||
view.title("模板 " + args[1] + " 权限管理");
|
view.title("模板 " + args[1] + " 权限管理");
|
||||||
view.navigator(Line.create()
|
view.navigator(Line.create()
|
||||||
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
|
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
|
||||||
.append(Button.create("模板列表").setExecuteCommand("/dominion template_list").build())
|
.append(Button.create("模板列表").setExecuteCommand("/dominion template list").build())
|
||||||
.append("模板管理")
|
.append("模板管理")
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -43,11 +46,11 @@ public class TemplateManage {
|
|||||||
|
|
||||||
if (template.getAdmin()) {
|
if (template.getAdmin()) {
|
||||||
view.add(Line.create()
|
view.add(Line.create()
|
||||||
.append(Button.createGreen("☑").setExecuteCommand("/dominion template_set_flag " + template.getName() + " admin false " + page).build())
|
.append(Button.createGreen("☑").setExecuteCommand("/dominion template set_flag " + template.getName() + " admin false " + page).build())
|
||||||
.append("管理员"));
|
.append("管理员"));
|
||||||
} else {
|
} else {
|
||||||
view.add(Line.create()
|
view.add(Line.create()
|
||||||
.append(Button.createRed("☐").setExecuteCommand("/dominion template_set_flag " + template.getName() + " admin true " + page).build())
|
.append(Button.createRed("☐").setExecuteCommand("/dominion template set_flag " + template.getName() + " admin true " + page).build())
|
||||||
.append("管理员"));
|
.append("管理员"));
|
||||||
}
|
}
|
||||||
for (Flag flag : Flag.getPrivilegeFlagsEnabled()) {
|
for (Flag flag : Flag.getPrivilegeFlagsEnabled()) {
|
||||||
@ -59,11 +62,11 @@ public class TemplateManage {
|
|||||||
private static Line createOption(Flag flag, boolean value, String templateName, int page) {
|
private static Line createOption(Flag flag, boolean value, String templateName, int page) {
|
||||||
if (value) {
|
if (value) {
|
||||||
return Line.create()
|
return Line.create()
|
||||||
.append(Button.createGreen("☑").setExecuteCommand("/dominion template_set_flag " + templateName + " " + flag.getFlagName() + " false " + page).build())
|
.append(Button.createGreen("☑").setExecuteCommand("/dominion template set_flag " + templateName + " " + flag.getFlagName() + " false " + page).build())
|
||||||
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
||||||
} else {
|
} else {
|
||||||
return Line.create()
|
return Line.create()
|
||||||
.append(Button.createRed("☐").setExecuteCommand("/dominion template_set_flag " + templateName + " " + flag.getFlagName() + " true " + page).build())
|
.append(Button.createRed("☐").setExecuteCommand("/dominion template set_flag " + templateName + " " + flag.getFlagName() + " true " + page).build())
|
||||||
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
.append(Component.text(flag.getDisplayName()).hoverEvent(Component.text(flag.getDescription())));
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user