mirror of
https://github.com/ColdeZhang/Dominion.git
synced 2024-10-19 02:46:49 +08:00
移除了权限组 完成了ui
This commit is contained in:
parent
5810244de9
commit
15f19865ef
@ -1,22 +1,14 @@
|
|||||||
package cn.lunadeer.dominion;
|
package cn.lunadeer.dominion;
|
||||||
|
|
||||||
import cn.lunadeer.dominion.commands.*;
|
import cn.lunadeer.dominion.commands.DominionFlag;
|
||||||
import cn.lunadeer.dominion.controllers.DominionController;
|
import cn.lunadeer.dominion.commands.DominionOperate;
|
||||||
import cn.lunadeer.dominion.controllers.GroupController;
|
import cn.lunadeer.dominion.commands.PlayerPrivilege;
|
||||||
import cn.lunadeer.dominion.controllers.PlayerController;
|
import cn.lunadeer.dominion.controllers.PlayerController;
|
||||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
|
||||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||||
import cn.lunadeer.dominion.dtos.PrivilegeTemplateDTO;
|
import cn.lunadeer.dominion.tuis.*;
|
||||||
import cn.lunadeer.dominion.utils.Notification;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.Line;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.ListView;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.Pagination;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.View;
|
|
||||||
import net.kyori.adventure.text.TextComponent;
|
|
||||||
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;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
@ -25,7 +17,6 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
|
||||||
import static cn.lunadeer.dominion.commands.Helper.*;
|
import static cn.lunadeer.dominion.commands.Helper.*;
|
||||||
|
|
||||||
public class Commands implements TabExecutor {
|
public class Commands implements TabExecutor {
|
||||||
@ -67,34 +58,22 @@ public class Commands implements TabExecutor {
|
|||||||
}
|
}
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "menu":
|
case "menu":
|
||||||
TUIs.menu(sender, args);
|
Menu.show(sender, args);
|
||||||
break;
|
break;
|
||||||
case "list":
|
case "list":
|
||||||
TUIs.list(sender, args);
|
ListDominion.show(sender, args);
|
||||||
break;
|
break;
|
||||||
case "help":
|
case "help":
|
||||||
TUIs.printHelp(sender, args);
|
cn.lunadeer.dominion.tuis.Apis.printHelp(sender, args);
|
||||||
break;
|
break;
|
||||||
case "info":
|
case "info":
|
||||||
TUIs.sizeInfo(sender, args);
|
DominionSizeInfo.show(sender, args);
|
||||||
break;
|
break;
|
||||||
case "manage":
|
case "manage":
|
||||||
TUIs.manage(sender, args);
|
DominionManage.show(sender, args);
|
||||||
break;
|
break;
|
||||||
case "flag_info":
|
case "flag_info":
|
||||||
TUIs.flagInfo(sender, args);
|
DominionFlagInfo.show(sender, args);
|
||||||
break;
|
|
||||||
case "group_list":
|
|
||||||
TUIs.groupList(sender, args);
|
|
||||||
break;
|
|
||||||
case "privilege_list":
|
|
||||||
TUIs.privilegeList(sender, args);
|
|
||||||
break;
|
|
||||||
case "group":
|
|
||||||
TUIs.group(sender, args);
|
|
||||||
break;
|
|
||||||
case "group_detail":
|
|
||||||
TUIs.groupDetail(sender, args);
|
|
||||||
break;
|
break;
|
||||||
case "create":
|
case "create":
|
||||||
DominionOperate.createDominion(sender, args);
|
DominionOperate.createDominion(sender, args);
|
||||||
@ -126,20 +105,11 @@ public class Commands implements TabExecutor {
|
|||||||
case "clear_privilege":
|
case "clear_privilege":
|
||||||
PlayerPrivilege.clearPlayerPrivilege(sender, args);
|
PlayerPrivilege.clearPlayerPrivilege(sender, args);
|
||||||
break;
|
break;
|
||||||
case "create_group":
|
case "privilege_list":
|
||||||
PrivilegeGroup.createGroup(sender, args);
|
DominionPrivilegeList.show(sender, args);
|
||||||
break;
|
break;
|
||||||
case "delete_group":
|
case "privilege_info":
|
||||||
PrivilegeGroup.deleteGroup(sender, args);
|
PrivilegeInfo.show(sender, args);
|
||||||
break;
|
|
||||||
case "set_group":
|
|
||||||
PrivilegeGroup.setDominionFlag(sender, args);
|
|
||||||
break;
|
|
||||||
case "add_player":
|
|
||||||
PrivilegeGroup.addPlayer(sender, args);
|
|
||||||
break;
|
|
||||||
case "remove_player":
|
|
||||||
PrivilegeGroup.removePlayer(sender, args);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
@ -165,8 +135,7 @@ public class Commands implements TabExecutor {
|
|||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
return Arrays.asList("menu", "help", "info", "manage", "flag_info", "group_list", "privilege_list", "group",
|
return Arrays.asList("menu", "help", "info", "manage", "flag_info", "group_list", "privilege_list", "group",
|
||||||
"create", "auto_create", "create_sub", "auto_create_sub", "expand", "contract", "delete", "set",
|
"create", "auto_create", "create_sub", "auto_create_sub", "expand", "contract", "delete", "set",
|
||||||
"set_privilege", "clear_privilege", "create_group", "delete_group", "set_group", "add_player",
|
"set_privilege", "clear_privilege", "list", "privilege_info"
|
||||||
"remove_player", "list"
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (args.length == 2) {
|
if (args.length == 2) {
|
||||||
@ -178,28 +147,23 @@ public class Commands implements TabExecutor {
|
|||||||
case "auto_create":
|
case "auto_create":
|
||||||
return Collections.singletonList("输入领地名称");
|
return Collections.singletonList("输入领地名称");
|
||||||
case "delete":
|
case "delete":
|
||||||
case "create_sub":
|
|
||||||
case "auto_create_sub":
|
|
||||||
case "info":
|
case "info":
|
||||||
case "manage":
|
case "manage":
|
||||||
case "flag_info":
|
case "flag_info":
|
||||||
case "group_list":
|
|
||||||
case "privilege_list":
|
case "privilege_list":
|
||||||
return playerDominions(sender);
|
return playerDominions(sender);
|
||||||
case "set":
|
case "set":
|
||||||
return dominionFlags();
|
return dominionFlags();
|
||||||
case "set_privilege":
|
case "set_privilege":
|
||||||
case "clear_privilege":
|
case "clear_privilege":
|
||||||
case "add_player":
|
case "privilege_info":
|
||||||
case "remove_player":
|
|
||||||
return playerNames();
|
return playerNames();
|
||||||
case "create_group":
|
|
||||||
case "delete_group":
|
|
||||||
case "set_group":
|
|
||||||
return playerGroups(sender);
|
|
||||||
case "expand":
|
case "expand":
|
||||||
case "contract":
|
case "contract":
|
||||||
return Collections.singletonList("大小(整数)");
|
return Collections.singletonList("大小(整数)");
|
||||||
|
case "create_sub":
|
||||||
|
case "auto_create_sub":
|
||||||
|
return Collections.singletonList("子领地名称");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (args.length == 3) {
|
if (args.length == 3) {
|
||||||
@ -208,25 +172,20 @@ public class Commands implements TabExecutor {
|
|||||||
return boolOptions();
|
return boolOptions();
|
||||||
case "set_privilege":
|
case "set_privilege":
|
||||||
return playerPrivileges();
|
return playerPrivileges();
|
||||||
case "set_group":
|
|
||||||
return groupPrivileges();
|
|
||||||
case "add_player":
|
|
||||||
case "remove_player":
|
|
||||||
return playerGroups(sender);
|
|
||||||
case "expand":
|
case "expand":
|
||||||
case "contract":
|
case "contract":
|
||||||
|
case "clear_privilege":
|
||||||
|
case "privilege_info":
|
||||||
|
case "auto_create_sub":
|
||||||
|
case "create_sub":
|
||||||
return playerDominions(sender);
|
return playerDominions(sender);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (args.length == 4) {
|
if (args.length == 4) {
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "set":
|
case "set":
|
||||||
case "set_privilege":
|
|
||||||
case "clear_privilege":
|
|
||||||
case "add_player":
|
|
||||||
case "remove_player":
|
|
||||||
return playerDominions(sender);
|
return playerDominions(sender);
|
||||||
case "set_group":
|
case "set_privilege":
|
||||||
return boolOptions();
|
return boolOptions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,9 +7,7 @@ import cn.lunadeer.dominion.utils.XLogger;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.postgresql.core.Tuple;
|
|
||||||
|
|
||||||
import javax.xml.crypto.Data;
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@ -1,505 +0,0 @@
|
|||||||
package cn.lunadeer.dominion;
|
|
||||||
|
|
||||||
import cn.lunadeer.dominion.commands.Helper;
|
|
||||||
import cn.lunadeer.dominion.controllers.GroupController;
|
|
||||||
import cn.lunadeer.dominion.controllers.PlayerController;
|
|
||||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
|
||||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
|
||||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
|
||||||
import cn.lunadeer.dominion.dtos.PrivilegeTemplateDTO;
|
|
||||||
import cn.lunadeer.dominion.utils.Notification;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.Button;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.Line;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.ListView;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.View;
|
|
||||||
import net.kyori.adventure.text.TextComponent;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
|
||||||
import static cn.lunadeer.dominion.commands.Helper.playerDominions;
|
|
||||||
import static cn.lunadeer.dominion.controllers.Apis.getPlayerCurrentDominion;
|
|
||||||
|
|
||||||
public class TUIs {
|
|
||||||
private 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static DominionDTO getDominion(Player player, String[] args) {
|
|
||||||
if (args.length == 2) {
|
|
||||||
return DominionDTO.select(args[1]);
|
|
||||||
} else {
|
|
||||||
return getPlayerCurrentDominion(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean noAuthToManage(Player player, DominionDTO dominion) {
|
|
||||||
if (player.isOp()) return false;
|
|
||||||
if (!dominion.getOwner().equals(player.getUniqueId())) {
|
|
||||||
List<PlayerPrivilegeDTO> privileges = PlayerPrivilegeDTO.select(player.getUniqueId(), dominion.getId());
|
|
||||||
for (PlayerPrivilegeDTO privilege : privileges) {
|
|
||||||
if (privilege.getAdmin()) return false;
|
|
||||||
}
|
|
||||||
Notification.error(player, "你不是领地 " + dominion.getName() + " 的拥有者或管理员,无权访问此页面");
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void printHelp(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
int page = getPage(args);
|
|
||||||
ListView view = ListView.create(5, "/dominion help");
|
|
||||||
view.title("领地插件命令帮助")
|
|
||||||
.add(Line.create().append("打开交互菜单").append(Button.create("/dominion menu", "/dominion menu")))
|
|
||||||
.add(Line.create().append("列出所有领地").append(Button.create("/dominion list", "/dominion list")))
|
|
||||||
.add(Line.create().append("查看帮助").append(Button.create("/dominion help [页码]", "/dominion help 1")))
|
|
||||||
.add(Line.create().append("查看领地信息").append(Button.create("/dominion info [领地名称]", "/dominion info")))
|
|
||||||
.add(Line.create().append("查看领地权限信息").append(Button.create("/dominion flag_info <领地名称> [页码]", "/dominion flag_info")))
|
|
||||||
.add(Line.create().append("管理领地").append("/dominion manage <领地名称>"))
|
|
||||||
.add(Line.create().append("创建领地").append("/dominion create <领地名称>"))
|
|
||||||
.add(Line.create().append("自动创建领地").append("/dominion auto_create <领地名称>"))
|
|
||||||
.add(Line.create().append("创建子领地").append("/dominion create_sub <子领地名称> [父领地名称]"))
|
|
||||||
.add(Line.create().append("自动创建子领地").append("/dominion auto_create_sub <子领地名称> [父领地名称]"))
|
|
||||||
.add(Line.create().append("扩张领地").append("/dominion expand [大小] [领地名称]"))
|
|
||||||
.add(Line.create().append("缩小领地").append("/dominion contract [大小] [领地名称]"))
|
|
||||||
.add(Line.create().append("删除领地").append("/dominion delete <领地名称> [force]"))
|
|
||||||
.add(Line.create().append("设置领地权限").append("/dominion set <权限名称> <true/false> [领地名称]"))
|
|
||||||
.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 group [页码]"))
|
|
||||||
.add(Line.create().append("查看权限组详情").append("/dominion group_detail <权限组名称> [页码]"))
|
|
||||||
.add(Line.create().append("创建权限组").append("/dominion create_group <权限组名称>"))
|
|
||||||
.add(Line.create().append("删除权限组").append("/dominion delete_group <权限组名称>"))
|
|
||||||
.add(Line.create().append("设置权限组权限").append("/dominion set_group <权限组名称> <权限名称> <true/false>"))
|
|
||||||
.add(Line.create().append("设置玩家在某个领地归属的权限组").append("/dominion add_player <玩家名称> <权限组名称> [领地名称]"))
|
|
||||||
.add(Line.create().append("删除玩家在某个领地归属的权限组").append("/dominion remove_player <玩家名称> <权限组名称> [领地名称]"))
|
|
||||||
.add(Line.create().append("查看领地的权限组").append("/dominion group_list <领地名称> [页码]"))
|
|
||||||
.showOn(player, page);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void sizeInfo(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
DominionDTO dominion = getDominion(player, args);
|
|
||||||
if (dominion == null) {
|
|
||||||
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion info <领地名称>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
PlayerDTO owner = PlayerController.getPlayerDTO(dominion.getOwner());
|
|
||||||
Integer x1 = dominion.getX1();
|
|
||||||
Integer y1 = dominion.getY1();
|
|
||||||
Integer z1 = dominion.getZ1();
|
|
||||||
Integer x2 = dominion.getX2();
|
|
||||||
Integer y2 = dominion.getY2();
|
|
||||||
Integer z2 = dominion.getZ2();
|
|
||||||
View view = View.create();
|
|
||||||
view.title("领地 " + dominion.getName() + " 的尺寸信息")
|
|
||||||
.subtitle("领地归属:" + owner.getLastKnownName())
|
|
||||||
.addLine(Line.create().append("领地大小:").append((x2 - x1) + " x" + (y2 - y1) + " x" + (z2 - z1)))
|
|
||||||
.addLine(Line.create().append("中心坐标:").append((x1 + (x2 - x1) / 2) + " " + (y1 + (y2 - y1) / 2) + " " + (z1 + (z2 - z1) / 2)))
|
|
||||||
.addLine(Line.create().append("垂直高度:").append(String.valueOf(y2 - y1)))
|
|
||||||
.addLine(Line.create().append("水平面积:").append(String.valueOf((x2 - x1) * (z2 - z1))))
|
|
||||||
.addLine(Line.create().append("领地体积:").append(String.valueOf((x2 - x1) * (y2 - y1) * (z2 - z1))))
|
|
||||||
.actionBar(Line.create()
|
|
||||||
.append(Button.create("管理界面", "/dominion manage " + dominion.getName()))
|
|
||||||
.append(Button.create("权限列表", "/dominion flag_info " + dominion.getName())))
|
|
||||||
.showOn(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void group(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
int page = getPage(args);
|
|
||||||
List<PrivilegeTemplateDTO> template = GroupController.all(player);
|
|
||||||
if (template.isEmpty()) {
|
|
||||||
Notification.warn(sender, "没有任何权限组");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ListView view = ListView.create(5, "/dominion group");
|
|
||||||
for (PrivilegeTemplateDTO dto : template) {
|
|
||||||
view.add(Line.create().append(dto.getName()).append(Button.create("管理", "/dominion group_detail " + dto.getName())));
|
|
||||||
}
|
|
||||||
view.showOn(player, page);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void groupDetail(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
if (args.length < 2) {
|
|
||||||
Notification.error(sender, "用法: /dominion group_detail <权限组名称> [页码]");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int page = 1;
|
|
||||||
if (args.length == 3) {
|
|
||||||
try {
|
|
||||||
page = Integer.parseInt(args[2]);
|
|
||||||
} catch (Exception e) {
|
|
||||||
Notification.error(sender, "页码格式错误");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
PrivilegeTemplateDTO template = PrivilegeTemplateDTO.select(player.getUniqueId(), args[1]);
|
|
||||||
if (template == null) {
|
|
||||||
Notification.error(sender, "权限组 " + args[1] + " 不存在");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// todo group detail
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void menu(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
Line list = Line.create()
|
|
||||||
.append(Button.create("我的领地", "/dominion list"))
|
|
||||||
.append("查看我的领地");
|
|
||||||
Line group = Line.create()
|
|
||||||
.append(Button.create("权限组", "/dominion group"))
|
|
||||||
.append("管理权限组");
|
|
||||||
Line help = Line.create()
|
|
||||||
.append(Button.create("指令帮助", "/dominion help"))
|
|
||||||
.append("查看指令帮助");
|
|
||||||
View view = View.create();
|
|
||||||
view.title("Dominion 领地系统")
|
|
||||||
.navigator(Line.create().append("主菜单"))
|
|
||||||
.addLine(list)
|
|
||||||
.addLine(group)
|
|
||||||
.addLine(help)
|
|
||||||
.showOn(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void list(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
int page = getPage(args);
|
|
||||||
ListView view = ListView.create(5, "/dominion list");
|
|
||||||
List<String> dominions = playerDominions(sender);
|
|
||||||
if (dominions.isEmpty()) {
|
|
||||||
Notification.warn(sender, "你没有任何领地");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
view.title("我的领地列表");
|
|
||||||
view.navigator(Line.create().append(Button.create("主菜单", "/dominion menu")).append("我的领地"));
|
|
||||||
for (String dominion : dominions) {
|
|
||||||
TextComponent manage = Button.createGreen("管理", "/dominion manage " + dominion);
|
|
||||||
TextComponent delete = Button.createRed("删除", "/dominion delete " + dominion);
|
|
||||||
view.add(Line.create().append(dominion).append(manage).append(delete));
|
|
||||||
}
|
|
||||||
view.showOn(player, page);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void flagInfo(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
if (args.length < 2) {
|
|
||||||
Notification.error(sender, "用法: /dominion flag_info <领地名称> [页码]");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
DominionDTO dominion = DominionDTO.select(args[1]);
|
|
||||||
if (dominion == null) {
|
|
||||||
Notification.error(sender, "领地 " + args[1] + " 不存在");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int page = 1;
|
|
||||||
if (args.length == 3) {
|
|
||||||
try {
|
|
||||||
page = Integer.parseInt(args[2]);
|
|
||||||
} catch (Exception ignored) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ListView view = ListView.create(6, "/dominion flag_info " + dominion.getName());
|
|
||||||
view.title("领地 " + dominion.getName() + " 默认权限")
|
|
||||||
.navigator(Line.create()
|
|
||||||
.append(Button.create("主菜单", "/dominion menu"))
|
|
||||||
.append(Button.create("我的领地", "/dominion list"))
|
|
||||||
.append(Button.create("管理界面", "/dominion manage " + dominion.getName()))
|
|
||||||
.append("权限列表"));
|
|
||||||
if (dominion.getAnchor()) {
|
|
||||||
view.add(Line.create().append("重生锚").append(Button.createRed("禁用", "/dominion set anchor false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("重生锚").append(Button.createGreen("启用", "/dominion set anchor true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getAnimalKilling()) {
|
|
||||||
view.add(Line.create().append("动物伤害").append(Button.createRed("禁用", "/dominion set animal_killing false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("动物伤害").append(Button.createGreen("启用", "/dominion set animal_killing true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getAnvil()) {
|
|
||||||
view.add(Line.create().append("使用铁砧").append(Button.createRed("禁用", "/dominion set anvil false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("使用铁砧").append(Button.createGreen("启用", "/dominion set anvil true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getBeacon()) {
|
|
||||||
view.add(Line.create().append("信标交互").append(Button.createRed("禁用", "/dominion set beacon false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("信标交互").append(Button.createGreen("启用", "/dominion set beacon true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getBed()) {
|
|
||||||
view.add(Line.create().append("床交互").append(Button.createRed("禁用", "/dominion set bed false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("床交互").append(Button.createGreen("启用", "/dominion set bed true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getBrew()) {
|
|
||||||
view.add(Line.create().append("使用酿造台").append(Button.createRed("禁用", "/dominion set brew false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("使用酿造台").append(Button.createGreen("启用", "/dominion set brew true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getButton()) {
|
|
||||||
view.add(Line.create().append("使用按钮").append(Button.createRed("禁用", "/dominion set button false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("使用按钮").append(Button.createGreen("启用", "/dominion set button true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getCake()) {
|
|
||||||
view.add(Line.create().append("使用蛋糕").append(Button.createRed("禁用", "/dominion set cake false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("使用蛋糕").append(Button.createGreen("启用", "/dominion set cake true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getContainer()) {
|
|
||||||
view.add(Line.create().append("容器交互").append(Button.createRed("禁用", "/dominion set container false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("容器交互").append(Button.createGreen("启用", "/dominion set container true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getCraft()) {
|
|
||||||
view.add(Line.create().append("合成").append(Button.createRed("禁用", "/dominion set craft false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("合成").append(Button.createGreen("启用", "/dominion set craft true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getCreeperExplode()) {
|
|
||||||
view.add(Line.create().append("苦力怕爆炸").append(Button.createRed("禁用", "/dominion set creeper_explode false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("苦力怕爆炸").append(Button.createGreen("启用", "/dominion set creeper_explode true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getDiode()) {
|
|
||||||
view.add(Line.create().append("中继器交互").append(Button.createRed("禁用", "/dominion set diode false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("中继器交互").append(Button.createGreen("启用", "/dominion set diode true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getDoor()) {
|
|
||||||
view.add(Line.create().append("门交互").append(Button.createRed("禁用", "/dominion set door false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("门交互").append(Button.createGreen("启用", "/dominion set door true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getDye()) {
|
|
||||||
view.add(Line.create().append("染色").append(Button.createRed("禁用", "/dominion set dye false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("染色").append(Button.createGreen("启用", "/dominion set dye true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getEgg()) {
|
|
||||||
view.add(Line.create().append("投掷鸡蛋").append(Button.createRed("禁用", "/dominion set egg false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("投掷鸡蛋").append(Button.createGreen("启用", "/dominion set egg true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getEnchant()) {
|
|
||||||
view.add(Line.create().append("附魔").append(Button.createRed("禁用", "/dominion set enchant false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("附魔").append(Button.createGreen("启用", "/dominion set enchant true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getEnderPearl()) {
|
|
||||||
view.add(Line.create().append("末影珍珠").append(Button.createRed("禁用", "/dominion set ender_pearl false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("末影珍珠").append(Button.createGreen("启用", "/dominion set ender_pearl true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getFeed()) {
|
|
||||||
view.add(Line.create().append("喂食").append(Button.createRed("禁用", "/dominion set feed false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("喂食").append(Button.createGreen("启用", "/dominion set feed true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getFireSpread()) {
|
|
||||||
view.add(Line.create().append("火焰蔓延").append(Button.createRed("禁用", "/dominion set fire_spread false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("火焰蔓延").append(Button.createGreen("启用", "/dominion set fire_spread true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getFlowInProtection()) {
|
|
||||||
view.add(Line.create().append("流体保护").append(Button.createRed("禁用", "/dominion set flow_in_protection false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("流体保护").append(Button.createGreen("启用", "/dominion set flow_in_protection true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getGlow()) {
|
|
||||||
view.add(Line.create().append("发光").append(Button.createRed("禁用", "/dominion set glow false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("发光").append(Button.createGreen("启用", "/dominion set glow true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getGrow()) {
|
|
||||||
view.add(Line.create().append("植物生长").append(Button.createRed("禁用", "/dominion set grow false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("植物生长").append(Button.createGreen("启用", "/dominion set grow true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getHoney()) {
|
|
||||||
view.add(Line.create().append("蜂巢交互").append(Button.createRed("禁用", "/dominion set honey false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("蜂巢交互").append(Button.createGreen("启用", "/dominion set honey true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getHook()) {
|
|
||||||
view.add(Line.create().append("钩子交互").append(Button.createRed("禁用", "/dominion set hook false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("钩子交互").append(Button.createGreen("启用", "/dominion set hook true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getIgnite()) {
|
|
||||||
view.add(Line.create().append("点燃").append(Button.createRed("禁用", "/dominion set ignite false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("点燃").append(Button.createGreen("启用", "/dominion set ignite true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getMobKilling()) {
|
|
||||||
view.add(Line.create().append("生物伤害").append(Button.createRed("禁用", "/dominion set mob_killing false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("生物伤害").append(Button.createGreen("启用", "/dominion set mob_killing true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getMove()) {
|
|
||||||
view.add(Line.create().append("移动").append(Button.createRed("禁用", "/dominion set move false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("移动").append(Button.createGreen("启用", "/dominion set move true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getPlace()) {
|
|
||||||
view.add(Line.create().append("放置").append(Button.createRed("禁用", "/dominion set place false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("放置").append(Button.createGreen("启用", "/dominion set place true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getPressure()) {
|
|
||||||
view.add(Line.create().append("压力板交互").append(Button.createRed("禁用", "/dominion set pressure false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("压力板交互").append(Button.createGreen("启用", "/dominion set pressure true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getRiding()) {
|
|
||||||
view.add(Line.create().append("骑乘").append(Button.createRed("禁用", "/dominion set riding false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("骑乘").append(Button.createGreen("启用", "/dominion set riding true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getShear()) {
|
|
||||||
view.add(Line.create().append("剪羊毛").append(Button.createRed("禁用", "/dominion set shear false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("剪羊毛").append(Button.createGreen("启用", "/dominion set shear true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getShoot()) {
|
|
||||||
view.add(Line.create().append("发射").append(Button.createRed("禁用", "/dominion set shoot false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("发射").append(Button.createGreen("启用", "/dominion set shoot true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getTntExplode()) {
|
|
||||||
view.add(Line.create().append("TNT爆炸").append(Button.createRed("禁用", "/dominion set tnt_explode false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("TNT爆炸").append(Button.createGreen("启用", "/dominion set tnt_explode true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getTrade()) {
|
|
||||||
view.add(Line.create().append("交易").append(Button.createRed("禁用", "/dominion set trade false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("交易").append(Button.createGreen("启用", "/dominion set trade true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getVehicleDestroy()) {
|
|
||||||
view.add(Line.create().append("破坏载具").append(Button.createRed("禁用", "/dominion set vehicle_destroy false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("破坏载具").append(Button.createGreen("启用", "/dominion set vehicle_destroy true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getWitherSpawn()) {
|
|
||||||
view.add(Line.create().append("凋零生成").append(Button.createRed("禁用", "/dominion set wither_spawn false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("凋零生成").append(Button.createGreen("启用", "/dominion set wither_spawn true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
if (dominion.getHarvest()) {
|
|
||||||
view.add(Line.create().append("收获").append(Button.createRed("禁用", "/dominion set harvest false " + dominion.getName())));
|
|
||||||
} else {
|
|
||||||
view.add(Line.create().append("收获").append(Button.createGreen("启用", "/dominion set harvest true " + dominion.getName())));
|
|
||||||
}
|
|
||||||
view.showOn(player, page);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void manage(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
DominionDTO dominion = getDominion(player, args);
|
|
||||||
if (dominion == null) {
|
|
||||||
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion manage <领地名称>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (noAuthToManage(player, dominion)) return;
|
|
||||||
Line size_info = Line.create()
|
|
||||||
.append(Button.create("尺寸信息", "/dominion info " + dominion.getName()))
|
|
||||||
.append("查看领地尺寸信息");
|
|
||||||
Line flag_info = Line.create()
|
|
||||||
.append(Button.create("权限设置", "/dominion flag_info " + dominion.getName()))
|
|
||||||
.append("管理领地默认权限");
|
|
||||||
Line group_info = Line.create()
|
|
||||||
.append(Button.create("权限组", "/dominion group_list " + dominion.getName()))
|
|
||||||
.append("管理领地权限组");
|
|
||||||
Line privilege_list = Line.create()
|
|
||||||
.append(Button.create("玩家权限", "/dominion privilege_list " + dominion.getName()))
|
|
||||||
.append("管理玩家特权");
|
|
||||||
View view = View.create();
|
|
||||||
view.title("领地 " + dominion.getName() + " 管理界面")
|
|
||||||
.navigator(Line.create()
|
|
||||||
.append(Button.create("主菜单", "/dominion menu"))
|
|
||||||
.append(Button.create("我的领地", "/dominion list"))
|
|
||||||
.append(dominion.getName()))
|
|
||||||
.addLine(size_info)
|
|
||||||
.addLine(flag_info)
|
|
||||||
.addLine(group_info)
|
|
||||||
.addLine(privilege_list)
|
|
||||||
.showOn(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void groupList(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
if (args.length < 2) {
|
|
||||||
Notification.error(sender, "用法: /dominion group_list <领地名称> [页码]");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
DominionDTO dominion = DominionDTO.select(args[1]);
|
|
||||||
if (dominion == null) {
|
|
||||||
Notification.error(sender, "领地 " + args[1] + " 不存在");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (noAuthToManage(player, dominion)) return;
|
|
||||||
int page = 1;
|
|
||||||
if (args.length == 3) {
|
|
||||||
try {
|
|
||||||
page = Integer.parseInt(args[2]);
|
|
||||||
} catch (Exception ignored) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ListView view = ListView.create(6, "/dominion group_list " + dominion.getName());
|
|
||||||
view.title("领地 " + dominion.getName() + " 权限组信息")
|
|
||||||
.subtitle(Button.create("返回管理界面", "/dominion manage " + dominion.getName()));
|
|
||||||
// todo
|
|
||||||
view.showOn(player, page);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void privilegeList(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
if (args.length < 2) {
|
|
||||||
Notification.error(sender, "用法: /dominion privilege_list <领地名称> [页码]");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
DominionDTO dominion = DominionDTO.select(args[1]);
|
|
||||||
if (dominion == null) {
|
|
||||||
Notification.error(sender, "领地 " + args[1] + " 不存在");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (noAuthToManage(player, dominion)) return;
|
|
||||||
int page = 1;
|
|
||||||
if (args.length == 3) {
|
|
||||||
try {
|
|
||||||
page = Integer.parseInt(args[2]);
|
|
||||||
} catch (Exception ignored) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ListView view = ListView.create(6, "/dominion privilege_list " + dominion.getName());
|
|
||||||
view.title("领地 " + dominion.getName() + " 玩家权限信息")
|
|
||||||
.subtitle(Button.create("返回管理界面", "/dominion manage " + dominion.getName()));
|
|
||||||
// todo
|
|
||||||
view.showOn(player, page);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +1,7 @@
|
|||||||
package cn.lunadeer.dominion.commands;
|
package cn.lunadeer.dominion.commands;
|
||||||
|
|
||||||
import cn.lunadeer.dominion.controllers.DominionController;
|
|
||||||
import cn.lunadeer.dominion.controllers.FlagsController;
|
import cn.lunadeer.dominion.controllers.FlagsController;
|
||||||
|
import cn.lunadeer.dominion.tuis.DominionFlagInfo;
|
||||||
import cn.lunadeer.dominion.utils.Notification;
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -28,8 +28,19 @@ public class DominionFlag {
|
|||||||
if (FlagsController.setFlag(player, args[1], Boolean.parseBoolean(args[2]), args[3]) == null) {
|
if (FlagsController.setFlag(player, args[1], Boolean.parseBoolean(args[2]), args[3]) == null) {
|
||||||
Notification.error(sender, "设置领地权限失败");
|
Notification.error(sender, "设置领地权限失败");
|
||||||
}
|
}
|
||||||
|
} else if (args.length == 5) {
|
||||||
|
if (FlagsController.setFlag(player, args[1], Boolean.parseBoolean(args[2]), args[3]) == null) {
|
||||||
|
Notification.error(sender, "设置领地权限失败");
|
||||||
|
}
|
||||||
|
String[] newArgs = new String[3];
|
||||||
|
newArgs[0] = "flag_info";
|
||||||
|
newArgs[1] = args[3];
|
||||||
|
newArgs[2] = args[4];
|
||||||
|
DominionFlagInfo.show(sender, newArgs);
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
Notification.error(sender, "用法: /dominion set <权限名称> <true/false> [领地名称]");
|
Notification.error(sender, "用法: /dominion set <权限名称> <true/false> [领地名称]");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
Notification.info(sender, "设置领地权限 " + args[1] + " 为 " + args[2]);
|
Notification.info(sender, "设置领地权限 " + args[1] + " 为 " + args[2]);
|
||||||
}
|
}
|
||||||
|
@ -4,16 +4,13 @@ import cn.lunadeer.dominion.Dominion;
|
|||||||
import cn.lunadeer.dominion.controllers.DominionController;
|
import cn.lunadeer.dominion.controllers.DominionController;
|
||||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
import cn.lunadeer.dominion.utils.Notification;
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.commands.Apis.*;
|
import static cn.lunadeer.dominion.commands.Apis.*;
|
||||||
import static cn.lunadeer.dominion.controllers.Apis.getPlayerCurrentDominion;
|
|
||||||
|
|
||||||
public class DominionOperate {
|
public class DominionOperate {
|
||||||
/**
|
/**
|
||||||
|
@ -1,17 +1,7 @@
|
|||||||
package cn.lunadeer.dominion.commands;
|
package cn.lunadeer.dominion.commands;
|
||||||
|
|
||||||
import cn.lunadeer.dominion.controllers.DominionController;
|
import cn.lunadeer.dominion.controllers.DominionController;
|
||||||
import cn.lunadeer.dominion.controllers.GroupController;
|
|
||||||
import cn.lunadeer.dominion.controllers.PlayerController;
|
|
||||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
|
||||||
import cn.lunadeer.dominion.dtos.PrivilegeTemplateDTO;
|
|
||||||
import cn.lunadeer.dominion.utils.Notification;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.Button;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.Line;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.ListView;
|
|
||||||
import cn.lunadeer.dominion.utils.STUI.View;
|
|
||||||
import net.kyori.adventure.text.TextComponent;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@ -20,7 +10,6 @@ import java.util.Arrays;
|
|||||||
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.controllers.Apis.getPlayerCurrentDominion;
|
|
||||||
|
|
||||||
public class Helper {
|
public class Helper {
|
||||||
|
|
||||||
@ -33,20 +22,14 @@ public class Helper {
|
|||||||
"harvest");
|
"harvest");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<String> groupPrivileges() {
|
public static List<String> playerPrivileges() {
|
||||||
return Arrays.asList(
|
return Arrays.asList(
|
||||||
"anchor", "animal_killing", "anvil", "beacon", "bed", "brew", "button", "cake", "container", "craft",
|
"admin", "anchor", "animal_killing", "anvil", "beacon", "bed", "brew", "button", "cake", "container", "craft",
|
||||||
"diode", "door", "dye", "egg", "enchant", "ender_pearl", "feed", "glow", "honey", "hook", "ignite",
|
"diode", "door", "dye", "egg", "enchant", "ender_pearl", "feed", "glow", "honey", "hook", "ignite",
|
||||||
"mob_killing", "move", "place", "pressure", "riding", "shear", "shoot", "trade", "vehicle_destroy",
|
"mob_killing", "move", "place", "pressure", "riding", "shear", "shoot", "trade", "vehicle_destroy",
|
||||||
"harvest");
|
"harvest");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<String> playerPrivileges() {
|
|
||||||
List<String> privileges = new ArrayList<>(groupPrivileges());
|
|
||||||
privileges.add("admin");
|
|
||||||
return privileges;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<String> playerDominions(CommandSender sender) {
|
public static List<String> playerDominions(CommandSender sender) {
|
||||||
List<String> dominions_name = new ArrayList<>();
|
List<String> dominions_name = new ArrayList<>();
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
@ -58,16 +41,5 @@ public class Helper {
|
|||||||
return dominions_name;
|
return dominions_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<String> playerGroups(CommandSender sender) {
|
|
||||||
List<String> groups_name = new ArrayList<>();
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return groups_name;
|
|
||||||
List<PrivilegeTemplateDTO> groups = GroupController.all(player);
|
|
||||||
for (PrivilegeTemplateDTO group : groups) {
|
|
||||||
groups_name.add(group.getName());
|
|
||||||
}
|
|
||||||
return groups_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package cn.lunadeer.dominion.commands;
|
package cn.lunadeer.dominion.commands;
|
||||||
|
|
||||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
import cn.lunadeer.dominion.tuis.PrivilegeInfo;
|
||||||
import cn.lunadeer.dominion.utils.Notification;
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -21,20 +21,34 @@ public class PlayerPrivilege {
|
|||||||
public static void setPlayerPrivilege(CommandSender sender, String[] args) {
|
public static void setPlayerPrivilege(CommandSender sender, String[] args) {
|
||||||
Player player = playerOnly(sender);
|
Player player = playerOnly(sender);
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
if (args.length != 4 && args.length != 5) {
|
|
||||||
|
if (args.length == 4) {
|
||||||
|
if (!setPrivilege(player, args[1], args[2], Boolean.parseBoolean(args[3]))) {
|
||||||
|
Notification.error(sender, "设置玩家权限失败");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else if (args.length == 5) {
|
||||||
|
if (!setPrivilege(player, args[1], args[2], Boolean.parseBoolean(args[3]), args[4])) {
|
||||||
|
Notification.error(sender, "设置玩家权限失败");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else if (args.length == 6) {
|
||||||
|
if (!setPrivilege(player, args[1], args[2], Boolean.parseBoolean(args[3]), args[4])) {
|
||||||
|
Notification.error(sender, "设置玩家权限失败");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String[] newArgs = new String[4];
|
||||||
|
newArgs[0] = "privilege_info";
|
||||||
|
newArgs[1] = args[1];
|
||||||
|
newArgs[2] = args[4];
|
||||||
|
newArgs[3] = args[5];
|
||||||
|
PrivilegeInfo.show(sender, newArgs);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
Notification.error(sender, "用法: /dominion set_privilege <玩家名称> <权限名称> <true/false> [领地名称]");
|
Notification.error(sender, "用法: /dominion set_privilege <玩家名称> <权限名称> <true/false> [领地名称]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (args.length == 4) {
|
Notification.info(sender, "设置玩家权限 " + args[1] + " 为 " + args[2]);
|
||||||
if (setPrivilege(player, args[1], args[2], Boolean.parseBoolean(args[3]))) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (setPrivilege(player, args[1], args[2], Boolean.parseBoolean(args[3]), args[4])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Notification.error(sender, "设置玩家权限失败");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,107 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.commands;
|
|
||||||
|
|
||||||
import cn.lunadeer.dominion.controllers.FlagsController;
|
|
||||||
import cn.lunadeer.dominion.controllers.GroupController;
|
|
||||||
import cn.lunadeer.dominion.controllers.PlayerController;
|
|
||||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
|
||||||
import cn.lunadeer.dominion.utils.Notification;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
|
||||||
|
|
||||||
public class PrivilegeGroup {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建权限组
|
|
||||||
* /dominion create_group <权限组名称>
|
|
||||||
*
|
|
||||||
* @param sender 命令发送者
|
|
||||||
* @param args 命令参数
|
|
||||||
*/
|
|
||||||
public static void createGroup(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
if (args.length != 2) {
|
|
||||||
Notification.error(sender, "用法: /dominion create_group <权限组名称>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
GroupController.create(player, args[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除权限组
|
|
||||||
* /dominion delete_group <权限组名称>
|
|
||||||
*
|
|
||||||
* @param sender 命令发送者
|
|
||||||
* @param args 命令参数
|
|
||||||
*/
|
|
||||||
public static void deleteGroup(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
if (args.length != 2) {
|
|
||||||
Notification.error(sender, "用法: /dominion delete_group <权限组名称>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
GroupController.delete(player, args[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置权限组权限
|
|
||||||
* /dominion set_group <权限组名称> <权限名称> <true/false>
|
|
||||||
*
|
|
||||||
* @param sender 命令发送者
|
|
||||||
* @param args 命令参数
|
|
||||||
*/
|
|
||||||
public static void setDominionFlag(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
if (args.length != 4) {
|
|
||||||
Notification.error(sender, "用法: /dominion set_group <权限组名称> <权限名称> <true/false>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
GroupController.setFlag(player, args[1], args[2], Boolean.parseBoolean(args[3]));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置玩家在某个领地归属的权限组
|
|
||||||
* /dominion add_player <玩家名称> <权限组名称> [领地名称]
|
|
||||||
*
|
|
||||||
* @param sender 命令发送者
|
|
||||||
* @param args 命令参数
|
|
||||||
*/
|
|
||||||
public static void addPlayer(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
if (args.length != 3 && args.length != 4) {
|
|
||||||
Notification.error(sender, "用法: /dominion add_player <玩家名称> <权限组名称> [领地名称]");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (args.length == 3) {
|
|
||||||
GroupController.addPlayer(player, args[1], args[2]);
|
|
||||||
} else {
|
|
||||||
GroupController.addPlayer(player, args[1], args[2], args[3]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除玩家在某个领地归属的权限组
|
|
||||||
* /dominion remove_player <玩家名称> <权限组名称> [领地名称]
|
|
||||||
*
|
|
||||||
* @param sender 命令发送者
|
|
||||||
* @param args 命令参数
|
|
||||||
*/
|
|
||||||
public static void removePlayer(CommandSender sender, String[] args) {
|
|
||||||
Player player = playerOnly(sender);
|
|
||||||
if (player == null) return;
|
|
||||||
if (args.length != 3 && args.length != 4) {
|
|
||||||
Notification.error(sender, "用法: /dominion remove_player <玩家名称> <权限组名称> [领地名称]");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (args.length == 3) {
|
|
||||||
GroupController.removePlayer(player, args[1], args[2]);
|
|
||||||
} else {
|
|
||||||
GroupController.removePlayer(player, args[1], args[2], args[3]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,7 +2,6 @@ package cn.lunadeer.dominion.controllers;
|
|||||||
|
|
||||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||||
import cn.lunadeer.dominion.dtos.PrivilegeTemplateDTO;
|
|
||||||
import cn.lunadeer.dominion.utils.Notification;
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
@ -22,16 +21,14 @@ public class Apis {
|
|||||||
public static boolean noAuthToChangeFlags(Player player, DominionDTO dominion) {
|
public static boolean noAuthToChangeFlags(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())) {
|
||||||
List<PlayerPrivilegeDTO> privileges = PlayerPrivilegeDTO.select(player.getUniqueId(), dominion.getId());
|
PlayerPrivilegeDTO privileges = PlayerPrivilegeDTO.select(player.getUniqueId(), dominion.getId());
|
||||||
for (PlayerPrivilegeDTO privilege : privileges) {
|
if (privileges == null || !privileges.getAdmin()) {
|
||||||
if (privilege.getAdmin()) return false;
|
Notification.error(player, "你不是领地 " + dominion.getName() + " 的拥有者或管理员,无权修改权限");
|
||||||
}
|
|
||||||
Notification.error(player, "你不是领地 " + dominion.getName() + " 的拥有者或管理员,无法执行此操作");
|
|
||||||
return true;
|
return true;
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取玩家当前所在的领地
|
* 获取玩家当前所在的领地
|
||||||
@ -57,108 +54,6 @@ public class Apis {
|
|||||||
return getPlayerCurrentDominion(player, true);
|
return getPlayerCurrentDominion(player, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static boolean updateTemplateFlag(PrivilegeTemplateDTO privilege, String flag, boolean value) {
|
|
||||||
switch (flag) {
|
|
||||||
case "anchor":
|
|
||||||
privilege.setAnchor(value);
|
|
||||||
break;
|
|
||||||
case "animal_killing":
|
|
||||||
privilege.setAnimalKilling(value);
|
|
||||||
break;
|
|
||||||
case "anvil":
|
|
||||||
privilege.setAnvil(value);
|
|
||||||
break;
|
|
||||||
case "beacon":
|
|
||||||
privilege.setBeacon(value);
|
|
||||||
break;
|
|
||||||
case "bed":
|
|
||||||
privilege.setBed(value);
|
|
||||||
break;
|
|
||||||
case "brew":
|
|
||||||
privilege.setBrew(value);
|
|
||||||
break;
|
|
||||||
case "button":
|
|
||||||
privilege.setButton(value);
|
|
||||||
break;
|
|
||||||
case "cake":
|
|
||||||
privilege.setCake(value);
|
|
||||||
break;
|
|
||||||
case "container":
|
|
||||||
privilege.setContainer(value);
|
|
||||||
break;
|
|
||||||
case "craft":
|
|
||||||
privilege.setCraft(value);
|
|
||||||
break;
|
|
||||||
case "diode":
|
|
||||||
privilege.setDiode(value);
|
|
||||||
break;
|
|
||||||
case "door":
|
|
||||||
privilege.setDoor(value);
|
|
||||||
break;
|
|
||||||
case "dye":
|
|
||||||
privilege.setDye(value);
|
|
||||||
break;
|
|
||||||
case "egg":
|
|
||||||
privilege.setEgg(value);
|
|
||||||
break;
|
|
||||||
case "enchant":
|
|
||||||
privilege.setEnchant(value);
|
|
||||||
break;
|
|
||||||
case "ender_pearl":
|
|
||||||
privilege.setEnderPearl(value);
|
|
||||||
break;
|
|
||||||
case "feed":
|
|
||||||
privilege.setFeed(value);
|
|
||||||
break;
|
|
||||||
case "glow":
|
|
||||||
privilege.setGlow(value);
|
|
||||||
break;
|
|
||||||
case "honey":
|
|
||||||
privilege.setHoney(value);
|
|
||||||
break;
|
|
||||||
case "hook":
|
|
||||||
privilege.setHook(value);
|
|
||||||
break;
|
|
||||||
case "ignite":
|
|
||||||
privilege.setIgnite(value);
|
|
||||||
break;
|
|
||||||
case "mob_killing":
|
|
||||||
privilege.setMobKilling(value);
|
|
||||||
break;
|
|
||||||
case "move":
|
|
||||||
privilege.setMove(value);
|
|
||||||
break;
|
|
||||||
case "place":
|
|
||||||
privilege.setPlace(value);
|
|
||||||
break;
|
|
||||||
case "pressure":
|
|
||||||
privilege.setPressure(value);
|
|
||||||
break;
|
|
||||||
case "riding":
|
|
||||||
privilege.setRiding(value);
|
|
||||||
break;
|
|
||||||
case "shear":
|
|
||||||
privilege.setShear(value);
|
|
||||||
break;
|
|
||||||
case "shoot":
|
|
||||||
privilege.setShoot(value);
|
|
||||||
break;
|
|
||||||
case "trade":
|
|
||||||
privilege.setTrade(value);
|
|
||||||
break;
|
|
||||||
case "vehicle_destroy":
|
|
||||||
privilege.setVehicleDestroy(value);
|
|
||||||
break;
|
|
||||||
case "harvest":
|
|
||||||
privilege.setHarvest(value);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static BlockFace getFace(Player player) {
|
public static BlockFace getFace(Player player) {
|
||||||
float yaw = player.getYaw();
|
float yaw = player.getYaw();
|
||||||
float pitch = player.getPitch();
|
float pitch = player.getPitch();
|
||||||
|
@ -3,7 +3,6 @@ package cn.lunadeer.dominion.controllers;
|
|||||||
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.utils.Notification;
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
import cn.lunadeer.dominion.utils.STUI.Pagination;
|
|
||||||
import cn.lunadeer.dominion.utils.Time;
|
import cn.lunadeer.dominion.utils.Time;
|
||||||
import cn.lunadeer.dominion.utils.XLogger;
|
import cn.lunadeer.dominion.utils.XLogger;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
@ -1,166 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.controllers;
|
|
||||||
|
|
||||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
|
||||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
|
||||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
|
||||||
import cn.lunadeer.dominion.dtos.PrivilegeTemplateDTO;
|
|
||||||
import cn.lunadeer.dominion.utils.Notification;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.controllers.Apis.noAuthToChangeFlags;
|
|
||||||
|
|
||||||
public class GroupController {
|
|
||||||
|
|
||||||
public static List<PrivilegeTemplateDTO> all(Player owner) {
|
|
||||||
return PrivilegeTemplateDTO.selectGroup(owner.getUniqueId());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建权限组
|
|
||||||
*
|
|
||||||
* @param operator 操作者
|
|
||||||
* @param name 权限组名称
|
|
||||||
* @return 是否创建成功
|
|
||||||
*/
|
|
||||||
public static PrivilegeTemplateDTO create(Player operator, String name) {
|
|
||||||
PrivilegeTemplateDTO template = new PrivilegeTemplateDTO(name, operator.getUniqueId(), true);
|
|
||||||
template = PrivilegeTemplateDTO.insert(template);
|
|
||||||
if (template == null) {
|
|
||||||
Notification.error(operator, "创建权限组失败");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return template;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除权限组
|
|
||||||
*
|
|
||||||
* @param operator 操作者
|
|
||||||
* @param name 权限组名称
|
|
||||||
* @return 是否删除成功
|
|
||||||
*/
|
|
||||||
public static boolean delete(Player operator, String name) {
|
|
||||||
PrivilegeTemplateDTO.delete(operator.getUniqueId(), name);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置权限组的权限
|
|
||||||
*
|
|
||||||
* @param operator 操作者
|
|
||||||
* @param name 权限组名称
|
|
||||||
* @param flag 权限名称
|
|
||||||
* @param value 权限值
|
|
||||||
* @return 是否设置成功
|
|
||||||
*/
|
|
||||||
public static boolean setFlag(Player operator, String name, String flag, boolean value) {
|
|
||||||
PrivilegeTemplateDTO privilege = PrivilegeTemplateDTO.select(operator.getUniqueId(), name);
|
|
||||||
if (privilege == null) {
|
|
||||||
Notification.error(operator, "没有找到权限组 " + name);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Apis.updateTemplateFlag(privilege, flag, value)) {
|
|
||||||
Notification.error(operator, "未知的权限组权限 " + flag);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Notification.info(operator, "设置权限组 " + name + " 权限 " + flag + " 为 " + value);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 添加玩家到权限组
|
|
||||||
*
|
|
||||||
* @param operator 操作者
|
|
||||||
* @param player_name 玩家
|
|
||||||
* @param groupName 权限组名称
|
|
||||||
* @return 是否添加成功
|
|
||||||
*/
|
|
||||||
public static boolean addPlayer(Player operator, String player_name, String groupName) {
|
|
||||||
DominionDTO dominion = Apis.getPlayerCurrentDominion(operator);
|
|
||||||
if (dominion == null) return false;
|
|
||||||
return addPlayer(operator, player_name, groupName, dominion.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 添加玩家到权限组
|
|
||||||
*
|
|
||||||
* @param operator 操作者
|
|
||||||
* @param player_name 玩家
|
|
||||||
* @param groupName 权限组名称
|
|
||||||
* @param dominionName 领地名称
|
|
||||||
* @return 是否添加成功
|
|
||||||
*/
|
|
||||||
public static boolean addPlayer(Player operator, String player_name, String groupName, String dominionName) {
|
|
||||||
PrivilegeTemplateDTO template = PrivilegeTemplateDTO.select(operator.getUniqueId(), groupName);
|
|
||||||
if (template == null) {
|
|
||||||
Notification.error(operator, "没有找到权限组 " + groupName + " 或者需要先创建权限组");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
PlayerDTO player = PlayerDTO.select(player_name);
|
|
||||||
if (player == null) {
|
|
||||||
Notification.error(operator, "玩家 " + player_name + " 不存在或没有登录过");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
DominionDTO dominion = DominionDTO.select(dominionName);
|
|
||||||
if (dominion == null) {
|
|
||||||
Notification.error(operator, "领地 " + dominionName + " 不存在");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (noAuthToChangeFlags(operator, dominion)) return false;
|
|
||||||
PlayerPrivilegeDTO privilege = new PlayerPrivilegeDTO(player.getUuid(), false, dominion.getId(), template.getId());
|
|
||||||
privilege = PlayerPrivilegeDTO.insert(privilege);
|
|
||||||
if (privilege == null) {
|
|
||||||
Notification.error(operator, "设置玩家" + player.getLastKnownName() + "在领地 " + dominionName + " 归属权限组 " + groupName + " 失败");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Notification.info(operator, "设置玩家" + player.getLastKnownName() + "在领地 " + dominionName + " 归属权限组 " + groupName);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从权限组中移除玩家
|
|
||||||
*
|
|
||||||
* @param operator 操作者
|
|
||||||
* @param player_name 玩家
|
|
||||||
* @param groupName 权限组名称
|
|
||||||
* @return 是否移除成功
|
|
||||||
*/
|
|
||||||
public static boolean removePlayer(Player operator, String player_name, String groupName) {
|
|
||||||
DominionDTO dominion = Apis.getPlayerCurrentDominion(operator);
|
|
||||||
if (dominion == null) return false;
|
|
||||||
return removePlayer(operator, player_name, groupName, dominion.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从权限组中移除玩家
|
|
||||||
*
|
|
||||||
* @param operator 操作者
|
|
||||||
* @param player_name 玩家
|
|
||||||
* @param groupName 权限组名称
|
|
||||||
* @param dominionName 领地名称
|
|
||||||
* @return 是否移除成功
|
|
||||||
*/
|
|
||||||
public static boolean removePlayer(Player operator, String player_name, String groupName, String dominionName) {
|
|
||||||
PrivilegeTemplateDTO template = PrivilegeTemplateDTO.select(operator.getUniqueId(), groupName);
|
|
||||||
if (template == null) {
|
|
||||||
Notification.error(operator, "没有找到权限组 " + groupName);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
DominionDTO dominion = DominionDTO.select(dominionName);
|
|
||||||
if (dominion == null) {
|
|
||||||
Notification.error(operator, "领地 " + dominionName + " 不存在");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (noAuthToChangeFlags(operator, dominion)) return false;
|
|
||||||
PlayerDTO player = PlayerDTO.select(player_name);
|
|
||||||
if (player == null) {
|
|
||||||
Notification.error(operator, "玩家 " + player_name + " 不存在或没有登录过");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
PlayerPrivilegeDTO.delete(player.getUuid(), dominion.getId(), template.getId());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,14 +3,9 @@ package cn.lunadeer.dominion.controllers;
|
|||||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||||
import cn.lunadeer.dominion.dtos.PrivilegeTemplateDTO;
|
|
||||||
import cn.lunadeer.dominion.utils.Notification;
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
import cn.lunadeer.dominion.utils.XLogger;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static cn.lunadeer.dominion.controllers.Apis.noAuthToChangeFlags;
|
import static cn.lunadeer.dominion.controllers.Apis.noAuthToChangeFlags;
|
||||||
@ -50,13 +45,7 @@ public class PrivilegeController {
|
|||||||
Notification.error(operator, "玩家 " + player_name + " 不存在或没有登录过");
|
Notification.error(operator, "玩家 " + player_name + " 不存在或没有登录过");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
List<PrivilegeTemplateDTO> templates = getPlayerPrivilegeTemplates(player.getUuid(), dominion.getId());
|
PlayerPrivilegeDTO.delete(player.getUuid(), dominion.getId());
|
||||||
if (templates.size() < 1) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
for (PrivilegeTemplateDTO template : templates) {
|
|
||||||
PlayerPrivilegeDTO.delete(player.getUuid(), dominion.getId(), template.getId());
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,69 +86,121 @@ public class PrivilegeController {
|
|||||||
Notification.error(operator, "玩家 " + player_name + " 不存在或没有登录过");
|
Notification.error(operator, "玩家 " + player_name + " 不存在或没有登录过");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
List<PrivilegeTemplateDTO> templates = getPlayerPrivilegeTemplates(player.getUuid(), dominion.getId());
|
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
||||||
if (templates.size() < 1) {
|
if (privilege == null) {
|
||||||
PrivilegeTemplateDTO template = createPlayerPrivilege(operator, player.getUuid(), dominion.getId());
|
privilege = createPlayerPrivilege(operator, player.getUuid(), dominion.getId());
|
||||||
if (template == null) return false;
|
if (privilege == null) return false;
|
||||||
templates.add(template);
|
|
||||||
}
|
}
|
||||||
if (templates.size() > 1) {
|
switch (flag) {
|
||||||
Notification.error(operator, "玩家特权拥有多个权限模板,建议使用 clear_privilege 清空此玩家特权后重新设置");
|
case "anchor":
|
||||||
XLogger.warn("玩家特权拥有多个权限模板,使用搜索到的第一个 id: " + templates.get(0).getId() + " 进行操作,请检查数据库");
|
privilege.setAnchor(value);
|
||||||
XLogger.warn("其他权限模板如下:");
|
break;
|
||||||
for (int i = 1; i < templates.size(); i++) {
|
case "animal_killing":
|
||||||
XLogger.warn(" id: " + templates.get(i).getId());
|
privilege.setAnimalKilling(value);
|
||||||
}
|
break;
|
||||||
}
|
case "anvil":
|
||||||
PrivilegeTemplateDTO privilege = templates.get(0);
|
privilege.setAnvil(value);
|
||||||
if (Objects.equals(flag, "admin")) {
|
break;
|
||||||
List<PlayerPrivilegeDTO> privileges = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
case "beacon":
|
||||||
for (PlayerPrivilegeDTO p : privileges) {
|
privilege.setBeacon(value);
|
||||||
if (p.getPrivilegeTemplateID().equals(privilege.getId())) {
|
break;
|
||||||
p = p.setAdmin(value);
|
case "bed":
|
||||||
if (p == null) {
|
privilege.setBed(value);
|
||||||
Notification.error(operator, "更新玩家特权失败");
|
break;
|
||||||
return false;
|
case "brew":
|
||||||
}
|
privilege.setBrew(value);
|
||||||
return true;
|
break;
|
||||||
}
|
case "button":
|
||||||
}
|
privilege.setButton(value);
|
||||||
Notification.error(operator, "没有找到玩家权限关联数据");
|
break;
|
||||||
return false;
|
case "cake":
|
||||||
}
|
privilege.setCake(value);
|
||||||
if (!Apis.updateTemplateFlag(privilege, flag, value)) {
|
break;
|
||||||
|
case "container":
|
||||||
|
privilege.setContainer(value);
|
||||||
|
break;
|
||||||
|
case "craft":
|
||||||
|
privilege.setCraft(value);
|
||||||
|
break;
|
||||||
|
case "diode":
|
||||||
|
privilege.setDiode(value);
|
||||||
|
break;
|
||||||
|
case "door":
|
||||||
|
privilege.setDoor(value);
|
||||||
|
break;
|
||||||
|
case "dye":
|
||||||
|
privilege.setDye(value);
|
||||||
|
break;
|
||||||
|
case "egg":
|
||||||
|
privilege.setEgg(value);
|
||||||
|
break;
|
||||||
|
case "enchant":
|
||||||
|
privilege.setEnchant(value);
|
||||||
|
break;
|
||||||
|
case "ender_pearl":
|
||||||
|
privilege.setEnderPearl(value);
|
||||||
|
break;
|
||||||
|
case "feed":
|
||||||
|
privilege.setFeed(value);
|
||||||
|
break;
|
||||||
|
case "glow":
|
||||||
|
privilege.setGlow(value);
|
||||||
|
break;
|
||||||
|
case "honey":
|
||||||
|
privilege.setHoney(value);
|
||||||
|
break;
|
||||||
|
case "hook":
|
||||||
|
privilege.setHook(value);
|
||||||
|
break;
|
||||||
|
case "ignite":
|
||||||
|
privilege.setIgnite(value);
|
||||||
|
break;
|
||||||
|
case "mob_killing":
|
||||||
|
privilege.setMobKilling(value);
|
||||||
|
break;
|
||||||
|
case "move":
|
||||||
|
privilege.setMove(value);
|
||||||
|
break;
|
||||||
|
case "place":
|
||||||
|
privilege.setPlace(value);
|
||||||
|
break;
|
||||||
|
case "pressure":
|
||||||
|
privilege.setPressure(value);
|
||||||
|
break;
|
||||||
|
case "riding":
|
||||||
|
privilege.setRiding(value);
|
||||||
|
break;
|
||||||
|
case "shear":
|
||||||
|
privilege.setShear(value);
|
||||||
|
break;
|
||||||
|
case "shoot":
|
||||||
|
privilege.setShoot(value);
|
||||||
|
break;
|
||||||
|
case "trade":
|
||||||
|
privilege.setTrade(value);
|
||||||
|
break;
|
||||||
|
case "vehicle_destroy":
|
||||||
|
privilege.setVehicleDestroy(value);
|
||||||
|
break;
|
||||||
|
case "harvest":
|
||||||
|
privilege.setHarvest(value);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
Notification.error(operator, "未知的领地权限 " + flag);
|
Notification.error(operator, "未知的领地权限 " + flag);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Notification.info(operator, "设置玩家在领地 " + dominionName + " 的权限 " + flag + " 为 " + value);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static PrivilegeTemplateDTO createPlayerPrivilege(Player operator, UUID player, Integer domID) {
|
private static PlayerPrivilegeDTO createPlayerPrivilege(Player operator, UUID player, Integer domID) {
|
||||||
PrivilegeTemplateDTO template = new PrivilegeTemplateDTO(player.toString(), operator.getUniqueId(), false);
|
PlayerPrivilegeDTO privilege = new PlayerPrivilegeDTO(player, false, domID);
|
||||||
template = PrivilegeTemplateDTO.insert(template);
|
|
||||||
if (template == null) {
|
|
||||||
Notification.error(operator, "创建玩家特权失败");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PlayerPrivilegeDTO privilege = new PlayerPrivilegeDTO(player, false, domID, template.getId());
|
|
||||||
privilege = PlayerPrivilegeDTO.insert(privilege);
|
privilege = PlayerPrivilegeDTO.insert(privilege);
|
||||||
if (privilege == null) {
|
if (privilege == null) {
|
||||||
Notification.error(operator, "创建玩家特权关联玩家时失败");
|
Notification.error(operator, "创建玩家特权关联玩家时失败");
|
||||||
PrivilegeTemplateDTO.delete(template);
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return template;
|
return privilege;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<PrivilegeTemplateDTO> getPlayerPrivilegeTemplates(UUID player, Integer domID) {
|
|
||||||
List<PlayerPrivilegeDTO> privileges = PlayerPrivilegeDTO.select(player, domID);
|
|
||||||
List<PrivilegeTemplateDTO> templates = new ArrayList<>();
|
|
||||||
for (PlayerPrivilegeDTO privilege : privileges) {
|
|
||||||
PrivilegeTemplateDTO template = PrivilegeTemplateDTO.select(privilege.getPrivilegeTemplateID());
|
|
||||||
if (template == null) continue;
|
|
||||||
if (template.getGroup()) continue; // 跳过组权限
|
|
||||||
templates.add(template);
|
|
||||||
}
|
|
||||||
return templates;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -11,52 +11,70 @@ import java.util.UUID;
|
|||||||
public class PlayerPrivilegeDTO {
|
public class PlayerPrivilegeDTO {
|
||||||
|
|
||||||
public static PlayerPrivilegeDTO insert(PlayerPrivilegeDTO player) {
|
public static PlayerPrivilegeDTO insert(PlayerPrivilegeDTO player) {
|
||||||
String sql = "INSERT INTO player_privilege (player_uuid, admin, dom_id, privilege_template_id) VALUES (" +
|
String sql = "INSERT INTO player_privilege (player_uuid, admin, dom_id) VALUES (" +
|
||||||
"'" + player.getPlayerUUID() + "', " +
|
"'" + player.getPlayerUUID() + "', " +
|
||||||
player.getAdmin() + ", " +
|
player.getAdmin() + ", " +
|
||||||
player.getDomID() + ", " +
|
player.getDomID() +
|
||||||
player.getPrivilegeTemplateID() + ")" +
|
") RETURNING *;";
|
||||||
"RETURNING *;";
|
|
||||||
List<PlayerPrivilegeDTO> players = query(sql);
|
List<PlayerPrivilegeDTO> players = query(sql);
|
||||||
if (players.size() == 0) return null;
|
if (players.size() == 0) return null;
|
||||||
return players.get(0);
|
return players.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<PlayerPrivilegeDTO> select(UUID playerUUID, Integer dom_id) {
|
public static PlayerPrivilegeDTO select(UUID playerUUID, Integer dom_id) {
|
||||||
String sql = "SELECT * FROM player_privilege WHERE player_uuid = '" + playerUUID + "' " +
|
String sql = "SELECT * FROM player_privilege WHERE player_uuid = '" + playerUUID + "' " +
|
||||||
"AND dom_id = " + dom_id + ";";
|
"AND dom_id = " + dom_id + ";";
|
||||||
return query(sql);
|
List<PlayerPrivilegeDTO> p = query(sql);
|
||||||
|
if (p.size() == 0) return null;
|
||||||
|
return p.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PlayerPrivilegeDTO select(Integer dom_id) {
|
public static List<PlayerPrivilegeDTO> select(Integer dom_id) {
|
||||||
String sql = "SELECT * FROM player_privilege WHERE dom_id = " + dom_id + ";";
|
String sql = "SELECT * FROM player_privilege WHERE dom_id = " + dom_id + ";";
|
||||||
List<PlayerPrivilegeDTO> players = query(sql);
|
|
||||||
if (players.size() == 0) return null;
|
|
||||||
return players.get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void delete(UUID player, Integer domID, Integer privilegeTemplateID) {
|
|
||||||
String sql = "DELETE FROM player_privilege WHERE player_uuid = '" + player + "' " +
|
|
||||||
"AND dom_id = " + domID + " " +
|
|
||||||
"AND privilege_template_id = " + privilegeTemplateID + ";";
|
|
||||||
query(sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void delete(UUID player) {
|
|
||||||
String sql = "DELETE FROM player_privilege WHERE player_uuid = '" + player + "';";
|
|
||||||
query(sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<PlayerPrivilegeDTO> selectAll() {
|
|
||||||
String sql = "SELECT * FROM player_privilege;";
|
|
||||||
return query(sql);
|
return query(sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void delete(UUID player, Integer domID) {
|
||||||
|
String sql = "DELETE FROM player_privilege WHERE player_uuid = '" + player + "' " +
|
||||||
|
"AND dom_id = " + domID + ";";
|
||||||
|
query(sql);
|
||||||
|
}
|
||||||
|
|
||||||
private final Integer id;
|
private final Integer id;
|
||||||
private final UUID playerUUID;
|
private final UUID playerUUID;
|
||||||
private Boolean admin;
|
private Boolean admin;
|
||||||
private final Integer domID;
|
private final Integer domID;
|
||||||
private final Integer privilegeTemplateID;
|
private Boolean anchor;
|
||||||
|
private Boolean animalKilling;
|
||||||
|
private Boolean anvil;
|
||||||
|
private Boolean beacon;
|
||||||
|
private Boolean bed;
|
||||||
|
private Boolean brew;
|
||||||
|
private Boolean button;
|
||||||
|
private Boolean cake;
|
||||||
|
private Boolean container;
|
||||||
|
private Boolean craft;
|
||||||
|
private Boolean diode;
|
||||||
|
private Boolean door;
|
||||||
|
private Boolean dye;
|
||||||
|
private Boolean egg;
|
||||||
|
private Boolean enchant;
|
||||||
|
private Boolean enderPearl;
|
||||||
|
private Boolean feed;
|
||||||
|
private Boolean glow;
|
||||||
|
private Boolean honey;
|
||||||
|
private Boolean hook;
|
||||||
|
private Boolean ignite;
|
||||||
|
private Boolean mobKilling;
|
||||||
|
private Boolean move;
|
||||||
|
private Boolean place;
|
||||||
|
private Boolean pressure;
|
||||||
|
private Boolean riding;
|
||||||
|
private Boolean shear;
|
||||||
|
private Boolean shoot;
|
||||||
|
private Boolean trade;
|
||||||
|
private Boolean vehicleDestroy;
|
||||||
|
private Boolean harvest;
|
||||||
|
|
||||||
public Integer getId() {
|
public Integer getId() {
|
||||||
return id;
|
return id;
|
||||||
@ -74,8 +92,283 @@ public class PlayerPrivilegeDTO {
|
|||||||
return domID;
|
return domID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getPrivilegeTemplateID() {
|
public Boolean getAnchor() {
|
||||||
return privilegeTemplateID;
|
return anchor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getAnimalKilling() {
|
||||||
|
return animalKilling;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getAnvil() {
|
||||||
|
return anvil;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getBeacon() {
|
||||||
|
return beacon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getBed() {
|
||||||
|
return bed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getBrew() {
|
||||||
|
return brew;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getButton() {
|
||||||
|
return button;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getCake() {
|
||||||
|
return cake;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getContainer() {
|
||||||
|
return container;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getCraft() {
|
||||||
|
return craft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getDiode() {
|
||||||
|
return diode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getDoor() {
|
||||||
|
return door;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getDye() {
|
||||||
|
return dye;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getEgg() {
|
||||||
|
return egg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getEnchant() {
|
||||||
|
return enchant;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getEnderPearl() {
|
||||||
|
return enderPearl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getFeed() {
|
||||||
|
return feed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getGlow() {
|
||||||
|
return glow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getHoney() {
|
||||||
|
return honey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getHook() {
|
||||||
|
return hook;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getIgnite() {
|
||||||
|
return ignite;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getMobKilling() {
|
||||||
|
return mobKilling;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getMove() {
|
||||||
|
return move;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getPlace() {
|
||||||
|
return place;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getPressure() {
|
||||||
|
return pressure;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getRiding() {
|
||||||
|
return riding;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getShear() {
|
||||||
|
return shear;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getShoot() {
|
||||||
|
return shoot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getTrade() {
|
||||||
|
return trade;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getVehicleDestroy() {
|
||||||
|
return vehicleDestroy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getHarvest() {
|
||||||
|
return harvest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setAnchor(Boolean anchor) {
|
||||||
|
this.anchor = anchor;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setAnimalKilling(Boolean animalKilling) {
|
||||||
|
this.animalKilling = animalKilling;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setAnvil(Boolean anvil) {
|
||||||
|
this.anvil = anvil;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setBeacon(Boolean beacon) {
|
||||||
|
this.beacon = beacon;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setBed(Boolean bed) {
|
||||||
|
this.bed = bed;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setBrew(Boolean brew) {
|
||||||
|
this.brew = brew;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setButton(Boolean button) {
|
||||||
|
this.button = button;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setCake(Boolean cake) {
|
||||||
|
this.cake = cake;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setContainer(Boolean container) {
|
||||||
|
this.container = container;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setCraft(Boolean craft) {
|
||||||
|
this.craft = craft;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setDiode(Boolean diode) {
|
||||||
|
this.diode = diode;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setDoor(Boolean door) {
|
||||||
|
this.door = door;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setDye(Boolean dye) {
|
||||||
|
this.dye = dye;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setEgg(Boolean egg) {
|
||||||
|
this.egg = egg;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setEnchant(Boolean enchant) {
|
||||||
|
this.enchant = enchant;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setEnderPearl(Boolean enderPearl) {
|
||||||
|
this.enderPearl = enderPearl;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setFeed(Boolean feed) {
|
||||||
|
this.feed = feed;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setGlow(Boolean glow) {
|
||||||
|
this.glow = glow;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setHoney(Boolean honey) {
|
||||||
|
this.honey = honey;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setHook(Boolean hook) {
|
||||||
|
this.hook = hook;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setIgnite(Boolean ignite) {
|
||||||
|
this.ignite = ignite;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setMobKilling(Boolean mobKilling) {
|
||||||
|
this.mobKilling = mobKilling;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setMove(Boolean move) {
|
||||||
|
this.move = move;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setPlace(Boolean place) {
|
||||||
|
this.place = place;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setPressure(Boolean pressure) {
|
||||||
|
this.pressure = pressure;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setRiding(Boolean riding) {
|
||||||
|
this.riding = riding;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setShear(Boolean shear) {
|
||||||
|
this.shear = shear;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setShoot(Boolean shoot) {
|
||||||
|
this.shoot = shoot;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setTrade(Boolean trade) {
|
||||||
|
this.trade = trade;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setVehicleDestroy(Boolean vehicleDestroy) {
|
||||||
|
this.vehicleDestroy = vehicleDestroy;
|
||||||
|
return update(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPrivilegeDTO setHarvest(Boolean harvest) {
|
||||||
|
this.harvest = harvest;
|
||||||
|
return update(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerPrivilegeDTO setAdmin(Boolean admin) {
|
public PlayerPrivilegeDTO setAdmin(Boolean admin) {
|
||||||
@ -83,16 +376,60 @@ public class PlayerPrivilegeDTO {
|
|||||||
return update(this);
|
return update(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private PlayerPrivilegeDTO(Integer id, UUID playerUUID, Boolean admin, Integer domID, Integer privilegeTemplateID) {
|
private PlayerPrivilegeDTO(Integer id, UUID playerUUID, Boolean admin, Integer domID,
|
||||||
|
Boolean anchor, Boolean animalKilling, Boolean anvil,
|
||||||
|
Boolean beacon, Boolean bed, Boolean brew, Boolean button, Boolean cake,
|
||||||
|
Boolean container, Boolean craft, Boolean diode, Boolean door, Boolean dye,
|
||||||
|
Boolean egg, Boolean enchant, Boolean enderPearl, Boolean feed, Boolean glow,
|
||||||
|
Boolean honey, Boolean hook, Boolean ignite, Boolean mobKilling, Boolean move,
|
||||||
|
Boolean place, Boolean pressure, Boolean riding, Boolean shear, Boolean shoot,
|
||||||
|
Boolean trade, Boolean vehicleDestroy, Boolean harvest) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.playerUUID = playerUUID;
|
this.playerUUID = playerUUID;
|
||||||
this.admin = admin;
|
this.admin = admin;
|
||||||
this.domID = domID;
|
this.domID = domID;
|
||||||
this.privilegeTemplateID = privilegeTemplateID;
|
this.anchor = anchor;
|
||||||
|
this.animalKilling = animalKilling;
|
||||||
|
this.anvil = anvil;
|
||||||
|
this.beacon = beacon;
|
||||||
|
this.bed = bed;
|
||||||
|
this.brew = brew;
|
||||||
|
this.button = button;
|
||||||
|
this.cake = cake;
|
||||||
|
this.container = container;
|
||||||
|
this.craft = craft;
|
||||||
|
this.diode = diode;
|
||||||
|
this.door = door;
|
||||||
|
this.dye = dye;
|
||||||
|
this.egg = egg;
|
||||||
|
this.enchant = enchant;
|
||||||
|
this.enderPearl = enderPearl;
|
||||||
|
this.feed = feed;
|
||||||
|
this.glow = glow;
|
||||||
|
this.honey = honey;
|
||||||
|
this.hook = hook;
|
||||||
|
this.ignite = ignite;
|
||||||
|
this.mobKilling = mobKilling;
|
||||||
|
this.move = move;
|
||||||
|
this.place = place;
|
||||||
|
this.pressure = pressure;
|
||||||
|
this.riding = riding;
|
||||||
|
this.shear = shear;
|
||||||
|
this.shoot = shoot;
|
||||||
|
this.trade = trade;
|
||||||
|
this.vehicleDestroy = vehicleDestroy;
|
||||||
|
this.harvest = harvest;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerPrivilegeDTO(UUID playerUUID, Boolean admin, Integer domID, Integer privilegeTemplateID) {
|
public PlayerPrivilegeDTO(UUID playerUUID, Boolean admin, Integer domID) {
|
||||||
this(null, playerUUID, admin, domID, privilegeTemplateID);
|
this(null, playerUUID, admin, domID,
|
||||||
|
false, false, false,
|
||||||
|
false, false, false, false, false,
|
||||||
|
false, false, false, false, false,
|
||||||
|
false, false, false, false, false,
|
||||||
|
false, false, false, false, false,
|
||||||
|
false, false, false, false, false,
|
||||||
|
false, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<PlayerPrivilegeDTO> query(String sql) {
|
private static List<PlayerPrivilegeDTO> query(String sql) {
|
||||||
@ -100,12 +437,43 @@ public class PlayerPrivilegeDTO {
|
|||||||
try (ResultSet rs = Database.query(sql)) {
|
try (ResultSet rs = Database.query(sql)) {
|
||||||
if (rs == null) return players;
|
if (rs == null) return players;
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
Integer id = rs.getInt("id");
|
PlayerPrivilegeDTO player = new PlayerPrivilegeDTO(
|
||||||
UUID uuid = UUID.fromString(rs.getString("player_uuid"));
|
rs.getInt("id"),
|
||||||
Boolean admin = rs.getBoolean("admin");
|
UUID.fromString(rs.getString("player_uuid")),
|
||||||
Integer domID = rs.getInt("dom_id");
|
rs.getBoolean("admin"),
|
||||||
Integer privilegeTemplateID = rs.getInt("privilege_template_id");
|
rs.getInt("dom_id"),
|
||||||
PlayerPrivilegeDTO player = new PlayerPrivilegeDTO(id, uuid, admin, domID, privilegeTemplateID);
|
rs.getBoolean("anchor"),
|
||||||
|
rs.getBoolean("animal_killing"),
|
||||||
|
rs.getBoolean("anvil"),
|
||||||
|
rs.getBoolean("beacon"),
|
||||||
|
rs.getBoolean("bed"),
|
||||||
|
rs.getBoolean("brew"),
|
||||||
|
rs.getBoolean("button"),
|
||||||
|
rs.getBoolean("cake"),
|
||||||
|
rs.getBoolean("container"),
|
||||||
|
rs.getBoolean("craft"),
|
||||||
|
rs.getBoolean("diode"),
|
||||||
|
rs.getBoolean("door"),
|
||||||
|
rs.getBoolean("dye"),
|
||||||
|
rs.getBoolean("egg"),
|
||||||
|
rs.getBoolean("enchant"),
|
||||||
|
rs.getBoolean("ender_pearl"),
|
||||||
|
rs.getBoolean("feed"),
|
||||||
|
rs.getBoolean("glow"),
|
||||||
|
rs.getBoolean("honey"),
|
||||||
|
rs.getBoolean("hook"),
|
||||||
|
rs.getBoolean("ignite"),
|
||||||
|
rs.getBoolean("mob_killing"),
|
||||||
|
rs.getBoolean("move"),
|
||||||
|
rs.getBoolean("place"),
|
||||||
|
rs.getBoolean("pressure"),
|
||||||
|
rs.getBoolean("riding"),
|
||||||
|
rs.getBoolean("shear"),
|
||||||
|
rs.getBoolean("shoot"),
|
||||||
|
rs.getBoolean("trade"),
|
||||||
|
rs.getBoolean("vehicle_destroy"),
|
||||||
|
rs.getBoolean("harvest")
|
||||||
|
);
|
||||||
players.add(player);
|
players.add(player);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -119,8 +487,39 @@ public class PlayerPrivilegeDTO {
|
|||||||
String sql = "UPDATE player_privilege SET " +
|
String sql = "UPDATE player_privilege SET " +
|
||||||
"admin = " + player.getAdmin() + ", " +
|
"admin = " + player.getAdmin() + ", " +
|
||||||
"dom_id = " + player.getDomID() + ", " +
|
"dom_id = " + player.getDomID() + ", " +
|
||||||
"privilege_template_id = " + player.getPrivilegeTemplateID() + " " +
|
"anchor = " + player.getAnchor() + ", " +
|
||||||
"WHERE id = " + player.getId() + ";";
|
"animal_killing = " + player.getAnimalKilling() + ", " +
|
||||||
|
"anvil = " + player.getAnvil() + ", " +
|
||||||
|
"beacon = " + player.getBeacon() + ", " +
|
||||||
|
"bed = " + player.getBed() + ", " +
|
||||||
|
"brew = " + player.getBrew() + ", " +
|
||||||
|
"button = " + player.getButton() + ", " +
|
||||||
|
"cake = " + player.getCake() + ", " +
|
||||||
|
"container = " + player.getContainer() + ", " +
|
||||||
|
"craft = " + player.getCraft() + ", " +
|
||||||
|
"diode = " + player.getDiode() + ", " +
|
||||||
|
"door = " + player.getDoor() + ", " +
|
||||||
|
"dye = " + player.getDye() + ", " +
|
||||||
|
"egg = " + player.getEgg() + ", " +
|
||||||
|
"enchant = " + player.getEnchant() + ", " +
|
||||||
|
"ender_pearl = " + player.getEnderPearl() + ", " +
|
||||||
|
"feed = " + player.getFeed() + ", " +
|
||||||
|
"glow = " + player.getGlow() + ", " +
|
||||||
|
"honey = " + player.getHoney() + ", " +
|
||||||
|
"hook = " + player.getHook() + ", " +
|
||||||
|
"ignite = " + player.getIgnite() + ", " +
|
||||||
|
"mob_killing = " + player.getMobKilling() + ", " +
|
||||||
|
"move = " + player.getMove() + ", " +
|
||||||
|
"place = " + player.getPlace() + ", " +
|
||||||
|
"pressure = " + player.getPressure() + ", " +
|
||||||
|
"riding = " + player.getRiding() + ", " +
|
||||||
|
"shear = " + player.getShear() + ", " +
|
||||||
|
"shoot = " + player.getShoot() + ", " +
|
||||||
|
"trade = " + player.getTrade() + ", " +
|
||||||
|
"vehicle_destroy = " + player.getVehicleDestroy() + ", " +
|
||||||
|
"harvest = " + player.getHarvest() + " " +
|
||||||
|
"WHERE id = " + player.getId() + " " +
|
||||||
|
"RETURNING *;";
|
||||||
List<PlayerPrivilegeDTO> players = query(sql);
|
List<PlayerPrivilegeDTO> players = query(sql);
|
||||||
if (players.size() == 0) return null;
|
if (players.size() == 0) return null;
|
||||||
return players.get(0);
|
return players.get(0);
|
||||||
|
@ -1,561 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.dtos;
|
|
||||||
|
|
||||||
import cn.lunadeer.dominion.utils.Database;
|
|
||||||
import cn.lunadeer.dominion.utils.XLogger;
|
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class PrivilegeTemplateDTO {
|
|
||||||
|
|
||||||
public static PrivilegeTemplateDTO insert(PrivilegeTemplateDTO privilege) {
|
|
||||||
String sql = "INSERT INTO privilege_template (name, creator, team) " +
|
|
||||||
"VALUES ('" +
|
|
||||||
privilege.getName() + "', '" +
|
|
||||||
privilege.getCreator().toString() + "', " +
|
|
||||||
privilege.getGroup() + ") " +
|
|
||||||
"RETURNING *;";
|
|
||||||
List<PrivilegeTemplateDTO> templates = query(sql);
|
|
||||||
if (templates.size() == 0) return null;
|
|
||||||
return templates.get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<PrivilegeTemplateDTO> selectAll() {
|
|
||||||
String sql = "SELECT * FROM privilege_template;";
|
|
||||||
return query(sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<PrivilegeTemplateDTO> searchGroup(String name){
|
|
||||||
String sql = "SELECT * FROM privilege_template WHERE name LIKE '%" + name + "%' AND team = true;";
|
|
||||||
return query(sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<PrivilegeTemplateDTO> selectGroup(UUID creator){
|
|
||||||
String sql = "SELECT * FROM privilege_template WHERE creator = '" + creator.toString() + "' AND team = true;";
|
|
||||||
return query(sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static PrivilegeTemplateDTO select(Integer id) {
|
|
||||||
String sql = "SELECT * FROM privilege_template WHERE id = " + id + ";";
|
|
||||||
List<PrivilegeTemplateDTO> templates = query(sql);
|
|
||||||
if (templates.size() == 0) return null;
|
|
||||||
return templates.get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static PrivilegeTemplateDTO select(UUID creator, String name) {
|
|
||||||
String sql = "SELECT * FROM privilege_template WHERE creator = '" + creator.toString() + "' AND name = '" + name + "';";
|
|
||||||
List<PrivilegeTemplateDTO> templates = query(sql);
|
|
||||||
if (templates.size() == 0) return null;
|
|
||||||
return templates.get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<PrivilegeTemplateDTO> search(String name) {
|
|
||||||
String sql = "SELECT * FROM privilege_template WHERE name LIKE '%" + name + "%';";
|
|
||||||
return query(sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<PrivilegeTemplateDTO> search(UUID creator) {
|
|
||||||
String sql = "SELECT * FROM privilege_template WHERE creator = '" + creator.toString() + "';";
|
|
||||||
return query(sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void delete(PrivilegeTemplateDTO privilege) {
|
|
||||||
String sql = "DELETE FROM privilege_template WHERE id = " + privilege.getId() + ";";
|
|
||||||
query(sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void delete(UUID creator, String name) {
|
|
||||||
String sql = "DELETE FROM privilege_template WHERE creator = '" + creator.toString() + "' AND name = '" + name + "';";
|
|
||||||
query(sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static PrivilegeTemplateDTO update(PrivilegeTemplateDTO privilege) {
|
|
||||||
String sql = "UPDATE privilege_template SET " +
|
|
||||||
"name = '" + privilege.getName() + "', " +
|
|
||||||
"creator = '" + privilege.getCreator().toString() + "', " +
|
|
||||||
"team = " + privilege.getGroup() + ", " +
|
|
||||||
"anchor = " + privilege.getAnchor() + ", " +
|
|
||||||
"animal_killing = " + privilege.getAnimalKilling() + ", " +
|
|
||||||
"anvil = " + privilege.getAnvil() + ", " +
|
|
||||||
"beacon = " + privilege.getBeacon() + ", " +
|
|
||||||
"bed = " + privilege.getBed() + ", " +
|
|
||||||
"brew = " + privilege.getBrew() + ", " +
|
|
||||||
"button = " + privilege.getButton() + ", " +
|
|
||||||
"cake = " + privilege.getCake() + ", " +
|
|
||||||
"container = " + privilege.getContainer() + ", " +
|
|
||||||
"craft = " + privilege.getCraft() + ", " +
|
|
||||||
"diode = " + privilege.getDiode() + ", " +
|
|
||||||
"door = " + privilege.getDoor() + ", " +
|
|
||||||
"dye = " + privilege.getDye() + ", " +
|
|
||||||
"egg = " + privilege.getEgg() + ", " +
|
|
||||||
"enchant = " + privilege.getEnchant() + ", " +
|
|
||||||
"ender_pearl = " + privilege.getEnderPearl() + ", " +
|
|
||||||
"feed = " + privilege.getFeed() + ", " +
|
|
||||||
"glow = " + privilege.getGlow() + ", " +
|
|
||||||
"honey = " + privilege.getHoney() + ", " +
|
|
||||||
"hook = " + privilege.getHook() + ", " +
|
|
||||||
"ignite = " + privilege.getIgnite() + ", " +
|
|
||||||
"mob_killing = " + privilege.getMobKilling() + ", " +
|
|
||||||
"move = " + privilege.getMove() + ", " +
|
|
||||||
"place = " + privilege.getPlace() + ", " +
|
|
||||||
"pressure = " + privilege.getPressure() + ", " +
|
|
||||||
"riding = " + privilege.getRiding() + ", " +
|
|
||||||
"shear = " + privilege.getShear() + ", " +
|
|
||||||
"shoot = " + privilege.getShoot() + ", " +
|
|
||||||
"trade = " + privilege.getTrade() + ", " +
|
|
||||||
"vehicle_destroy = " + privilege.getVehicleDestroy() + ", " +
|
|
||||||
"harvest = " + privilege.getHarvest() + " " +
|
|
||||||
"WHERE id = " + privilege.getId() + " " +
|
|
||||||
"RETURNING *;";
|
|
||||||
List<PrivilegeTemplateDTO> templates = query(sql);
|
|
||||||
if (templates.size() == 0) return null;
|
|
||||||
return templates.get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
private final Integer id;
|
|
||||||
private String name;
|
|
||||||
private final UUID creator;
|
|
||||||
private final Boolean team;
|
|
||||||
private Boolean anchor;
|
|
||||||
private Boolean animalKilling;
|
|
||||||
private Boolean anvil;
|
|
||||||
private Boolean beacon;
|
|
||||||
private Boolean bed;
|
|
||||||
private Boolean brew;
|
|
||||||
private Boolean button;
|
|
||||||
private Boolean cake;
|
|
||||||
private Boolean container;
|
|
||||||
private Boolean craft;
|
|
||||||
private Boolean diode;
|
|
||||||
private Boolean door;
|
|
||||||
private Boolean dye;
|
|
||||||
private Boolean egg;
|
|
||||||
private Boolean enchant;
|
|
||||||
private Boolean enderPearl;
|
|
||||||
private Boolean feed;
|
|
||||||
private Boolean glow;
|
|
||||||
private Boolean honey;
|
|
||||||
private Boolean hook;
|
|
||||||
private Boolean ignite;
|
|
||||||
private Boolean mobKilling;
|
|
||||||
private Boolean move;
|
|
||||||
private Boolean place;
|
|
||||||
private Boolean pressure;
|
|
||||||
private Boolean riding;
|
|
||||||
private Boolean shear;
|
|
||||||
private Boolean shoot;
|
|
||||||
private Boolean trade;
|
|
||||||
private Boolean vehicleDestroy;
|
|
||||||
private Boolean harvest;
|
|
||||||
|
|
||||||
public Integer getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UUID getCreator() {
|
|
||||||
return creator;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getGroup() {
|
|
||||||
return team;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getAnchor() {
|
|
||||||
return anchor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getAnimalKilling() {
|
|
||||||
return animalKilling;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getAnvil() {
|
|
||||||
return anvil;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getBeacon() {
|
|
||||||
return beacon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getBed() {
|
|
||||||
return bed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getBrew() {
|
|
||||||
return brew;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getButton() {
|
|
||||||
return button;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getCake() {
|
|
||||||
return cake;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getContainer() {
|
|
||||||
return container;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getCraft() {
|
|
||||||
return craft;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getDiode() {
|
|
||||||
return diode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getDoor() {
|
|
||||||
return door;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getDye() {
|
|
||||||
return dye;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getEgg() {
|
|
||||||
return egg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getEnchant() {
|
|
||||||
return enchant;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getEnderPearl() {
|
|
||||||
return enderPearl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getFeed() {
|
|
||||||
return feed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getGlow() {
|
|
||||||
return glow;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getHoney() {
|
|
||||||
return honey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getHook() {
|
|
||||||
return hook;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getIgnite() {
|
|
||||||
return ignite;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getMobKilling() {
|
|
||||||
return mobKilling;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getMove() {
|
|
||||||
return move;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getPlace() {
|
|
||||||
return place;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getPressure() {
|
|
||||||
return pressure;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getRiding() {
|
|
||||||
return riding;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getShear() {
|
|
||||||
return shear;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getShoot() {
|
|
||||||
return shoot;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getTrade() {
|
|
||||||
return trade;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getVehicleDestroy() {
|
|
||||||
return vehicleDestroy;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getHarvest() {
|
|
||||||
return harvest;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setAnchor(Boolean anchor) {
|
|
||||||
this.anchor = anchor;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setAnimalKilling(Boolean animalKilling) {
|
|
||||||
this.animalKilling = animalKilling;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setAnvil(Boolean anvil) {
|
|
||||||
this.anvil = anvil;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setBeacon(Boolean beacon) {
|
|
||||||
this.beacon = beacon;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setBed(Boolean bed) {
|
|
||||||
this.bed = bed;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setBrew(Boolean brew) {
|
|
||||||
this.brew = brew;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setButton(Boolean button) {
|
|
||||||
this.button = button;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setCake(Boolean cake) {
|
|
||||||
this.cake = cake;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setContainer(Boolean container) {
|
|
||||||
this.container = container;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setCraft(Boolean craft) {
|
|
||||||
this.craft = craft;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setDiode(Boolean diode) {
|
|
||||||
this.diode = diode;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setDoor(Boolean door) {
|
|
||||||
this.door = door;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setDye(Boolean dye) {
|
|
||||||
this.dye = dye;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setEgg(Boolean egg) {
|
|
||||||
this.egg = egg;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setEnchant(Boolean enchant) {
|
|
||||||
this.enchant = enchant;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setEnderPearl(Boolean enderPearl) {
|
|
||||||
this.enderPearl = enderPearl;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setFeed(Boolean feed) {
|
|
||||||
this.feed = feed;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setGlow(Boolean glow) {
|
|
||||||
this.glow = glow;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setHoney(Boolean honey) {
|
|
||||||
this.honey = honey;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setHook(Boolean hook) {
|
|
||||||
this.hook = hook;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setIgnite(Boolean ignite) {
|
|
||||||
this.ignite = ignite;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setMobKilling(Boolean mobKilling) {
|
|
||||||
this.mobKilling = mobKilling;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setMove(Boolean move) {
|
|
||||||
this.move = move;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setPlace(Boolean place) {
|
|
||||||
this.place = place;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setPressure(Boolean pressure) {
|
|
||||||
this.pressure = pressure;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setRiding(Boolean riding) {
|
|
||||||
this.riding = riding;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setShear(Boolean shear) {
|
|
||||||
this.shear = shear;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setShoot(Boolean shoot) {
|
|
||||||
this.shoot = shoot;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setTrade(Boolean trade) {
|
|
||||||
this.trade = trade;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setVehicleDestroy(Boolean vehicleDestroy) {
|
|
||||||
this.vehicleDestroy = vehicleDestroy;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO setHarvest(Boolean harvest) {
|
|
||||||
this.harvest = harvest;
|
|
||||||
return update(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PrivilegeTemplateDTO(String name, UUID creator, Boolean team) {
|
|
||||||
this(null, name, creator, team,
|
|
||||||
false, false, false,
|
|
||||||
false, false, false, false, false,
|
|
||||||
false, false, false, false, false,
|
|
||||||
false, false, false, false, false,
|
|
||||||
false, false, false, false, false,
|
|
||||||
false, false, false, false, false,
|
|
||||||
false, false, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
private PrivilegeTemplateDTO(Integer id, String name, UUID creator, Boolean team,
|
|
||||||
Boolean anchor, Boolean animalKilling, Boolean anvil,
|
|
||||||
Boolean beacon, Boolean bed, Boolean brew, Boolean button, Boolean cake,
|
|
||||||
Boolean container, Boolean craft, Boolean diode, Boolean door, Boolean dye,
|
|
||||||
Boolean egg, Boolean enchant, Boolean enderPearl, Boolean feed, Boolean glow,
|
|
||||||
Boolean honey, Boolean hook, Boolean ignite, Boolean mobKilling, Boolean move,
|
|
||||||
Boolean place, Boolean pressure, Boolean riding, Boolean shear, Boolean shoot,
|
|
||||||
Boolean trade, Boolean vehicleDestroy, Boolean harvest) {
|
|
||||||
this.id = id;
|
|
||||||
this.name = name;
|
|
||||||
this.creator = creator;
|
|
||||||
this.team = team;
|
|
||||||
this.anchor = anchor;
|
|
||||||
this.animalKilling = animalKilling;
|
|
||||||
this.anvil = anvil;
|
|
||||||
this.beacon = beacon;
|
|
||||||
this.bed = bed;
|
|
||||||
this.brew = brew;
|
|
||||||
this.button = button;
|
|
||||||
this.cake = cake;
|
|
||||||
this.container = container;
|
|
||||||
this.craft = craft;
|
|
||||||
this.diode = diode;
|
|
||||||
this.door = door;
|
|
||||||
this.dye = dye;
|
|
||||||
this.egg = egg;
|
|
||||||
this.enchant = enchant;
|
|
||||||
this.enderPearl = enderPearl;
|
|
||||||
this.feed = feed;
|
|
||||||
this.glow = glow;
|
|
||||||
this.honey = honey;
|
|
||||||
this.hook = hook;
|
|
||||||
this.ignite = ignite;
|
|
||||||
this.mobKilling = mobKilling;
|
|
||||||
this.move = move;
|
|
||||||
this.place = place;
|
|
||||||
this.pressure = pressure;
|
|
||||||
this.riding = riding;
|
|
||||||
this.shear = shear;
|
|
||||||
this.shoot = shoot;
|
|
||||||
this.trade = trade;
|
|
||||||
this.vehicleDestroy = vehicleDestroy;
|
|
||||||
this.harvest = harvest;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static List<PrivilegeTemplateDTO> query(String sql) {
|
|
||||||
List<PrivilegeTemplateDTO> privilegeTemplates = new ArrayList<>();
|
|
||||||
try (ResultSet rs = Database.query(sql)) {
|
|
||||||
if (rs == null) return privilegeTemplates;
|
|
||||||
while (rs.next()) {
|
|
||||||
PrivilegeTemplateDTO privilegeTemplate = new PrivilegeTemplateDTO(
|
|
||||||
rs.getInt("id"),
|
|
||||||
rs.getString("name"),
|
|
||||||
UUID.fromString(rs.getString("creator")),
|
|
||||||
rs.getBoolean("team"),
|
|
||||||
rs.getBoolean("anchor"),
|
|
||||||
rs.getBoolean("animal_killing"),
|
|
||||||
rs.getBoolean("anvil"),
|
|
||||||
rs.getBoolean("beacon"),
|
|
||||||
rs.getBoolean("bed"),
|
|
||||||
rs.getBoolean("brew"),
|
|
||||||
rs.getBoolean("button"),
|
|
||||||
rs.getBoolean("cake"),
|
|
||||||
rs.getBoolean("container"),
|
|
||||||
rs.getBoolean("craft"),
|
|
||||||
rs.getBoolean("diode"),
|
|
||||||
rs.getBoolean("door"),
|
|
||||||
rs.getBoolean("dye"),
|
|
||||||
rs.getBoolean("egg"),
|
|
||||||
rs.getBoolean("enchant"),
|
|
||||||
rs.getBoolean("ender_pearl"),
|
|
||||||
rs.getBoolean("feed"),
|
|
||||||
rs.getBoolean("glow"),
|
|
||||||
rs.getBoolean("honey"),
|
|
||||||
rs.getBoolean("hook"),
|
|
||||||
rs.getBoolean("ignite"),
|
|
||||||
rs.getBoolean("mob_killing"),
|
|
||||||
rs.getBoolean("move"),
|
|
||||||
rs.getBoolean("place"),
|
|
||||||
rs.getBoolean("pressure"),
|
|
||||||
rs.getBoolean("riding"),
|
|
||||||
rs.getBoolean("shear"),
|
|
||||||
rs.getBoolean("shoot"),
|
|
||||||
rs.getBoolean("trade"),
|
|
||||||
rs.getBoolean("vehicle_destroy"),
|
|
||||||
rs.getBoolean("harvest")
|
|
||||||
);
|
|
||||||
privilegeTemplates.add(privilegeTemplate);
|
|
||||||
}
|
|
||||||
} catch (SQLException e) {
|
|
||||||
XLogger.err("Database query failed: " + e.getMessage());
|
|
||||||
XLogger.err("SQL: " + sql);
|
|
||||||
}
|
|
||||||
return privilegeTemplates;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
76
src/main/java/cn/lunadeer/dominion/tuis/Apis.java
Normal file
76
src/main/java/cn/lunadeer/dominion/tuis/Apis.java
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
package cn.lunadeer.dominion.tuis;
|
||||||
|
|
||||||
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
|
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||||
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Button;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Line;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.ListView;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
import static cn.lunadeer.dominion.controllers.Apis.getPlayerCurrentDominion;
|
||||||
|
|
||||||
|
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 DominionDTO getDominion(Player player, String[] args) {
|
||||||
|
if (args.length == 2) {
|
||||||
|
return DominionDTO.select(args[1]);
|
||||||
|
} else {
|
||||||
|
return getPlayerCurrentDominion(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean noAuthToManage(Player player, DominionDTO dominion) {
|
||||||
|
if (player.isOp()) return false;
|
||||||
|
if (!dominion.getOwner().equals(player.getUniqueId())) {
|
||||||
|
PlayerPrivilegeDTO privileges = PlayerPrivilegeDTO.select(player.getUniqueId(), dominion.getId());
|
||||||
|
if (privileges == null || !privileges.getAdmin()) {
|
||||||
|
Notification.error(player, "你不是领地 " + dominion.getName() + " 的拥有者或管理员,无权访问此页面");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void printHelp(CommandSender sender, String[] args) {
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
int page = getPage(args);
|
||||||
|
ListView view = ListView.create(5, "/dominion help");
|
||||||
|
view.title("领地插件命令帮助")
|
||||||
|
.add(Line.create().append("打开交互菜单").append(Button.create("/dominion menu", "/dominion menu")))
|
||||||
|
.add(Line.create().append("列出所有领地").append(Button.create("/dominion list", "/dominion list")))
|
||||||
|
.add(Line.create().append("查看帮助").append(Button.create("/dominion help [页码]", "/dominion help 1")))
|
||||||
|
.add(Line.create().append("查看领地信息").append(Button.create("/dominion info [领地名称]", "/dominion info")))
|
||||||
|
.add(Line.create().append("查看领地权限信息").append(Button.create("/dominion flag_info <领地名称> [页码]", "/dominion flag_info")))
|
||||||
|
.add(Line.create().append("管理领地").append("/dominion manage <领地名称>"))
|
||||||
|
.add(Line.create().append("创建领地").append("/dominion create <领地名称>"))
|
||||||
|
.add(Line.create().append("自动创建领地").append("/dominion auto_create <领地名称>"))
|
||||||
|
.add(Line.create().append("创建子领地").append("/dominion create_sub <子领地名称> [父领地名称]"))
|
||||||
|
.add(Line.create().append("自动创建子领地").append("/dominion auto_create_sub <子领地名称> [父领地名称]"))
|
||||||
|
.add(Line.create().append("扩张领地").append("/dominion expand [大小] [领地名称]"))
|
||||||
|
.add(Line.create().append("缩小领地").append("/dominion contract [大小] [领地名称]"))
|
||||||
|
.add(Line.create().append("删除领地").append("/dominion delete <领地名称> [force]"))
|
||||||
|
.add(Line.create().append("设置领地权限").append("/dominion set <权限名称> <true/false> [领地名称]"))
|
||||||
|
.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 <玩家名称> [领地名称] [页码]"))
|
||||||
|
.showOn(player, page);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
376
src/main/java/cn/lunadeer/dominion/tuis/DominionFlagInfo.java
Normal file
376
src/main/java/cn/lunadeer/dominion/tuis/DominionFlagInfo.java
Normal file
@ -0,0 +1,376 @@
|
|||||||
|
package cn.lunadeer.dominion.tuis;
|
||||||
|
|
||||||
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Button;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Line;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.ListView;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
|
||||||
|
public class DominionFlagInfo {
|
||||||
|
|
||||||
|
public static void show(CommandSender sender, String[] args) {
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
if (args.length < 2) {
|
||||||
|
Notification.error(sender, "用法: /dominion flag_info <领地名称> [页码]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DominionDTO dominion = DominionDTO.select(args[1]);
|
||||||
|
if (dominion == null) {
|
||||||
|
Notification.error(sender, "领地 " + args[1] + " 不存在");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int page = 1;
|
||||||
|
if (args.length == 3) {
|
||||||
|
try {
|
||||||
|
page = Integer.parseInt(args[2]);
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ListView view = ListView.create(6, "/dominion flag_info " + dominion.getName());
|
||||||
|
view.title("领地 " + dominion.getName() + " 默认权限")
|
||||||
|
.navigator(Line.create()
|
||||||
|
.append(Button.create("主菜单", "/dominion menu"))
|
||||||
|
.append(Button.create("我的领地", "/dominion list"))
|
||||||
|
.append(Button.create("管理界面", "/dominion manage " + dominion.getName()))
|
||||||
|
.append("权限列表"));
|
||||||
|
if (dominion.getAnchor()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set anchor false " + dominion.getName() + " " + page))
|
||||||
|
.append("重生锚"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set anchor true " + dominion.getName() + " " + page))
|
||||||
|
.append("重生锚"));
|
||||||
|
}
|
||||||
|
if (dominion.getAnimalKilling()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set animal_killing false " + dominion.getName() + " " + page))
|
||||||
|
.append("动物伤害"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set animal_killing true " + dominion.getName() + " " + page))
|
||||||
|
.append("动物伤害"));
|
||||||
|
}
|
||||||
|
if (dominion.getAnvil()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set anvil false " + dominion.getName() + " " + page))
|
||||||
|
.append("使用铁砧"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set anvil true " + dominion.getName() + " " + page))
|
||||||
|
.append("使用铁砧"));
|
||||||
|
}
|
||||||
|
if (dominion.getBeacon()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set beacon false " + dominion.getName() + " " + page))
|
||||||
|
.append("信标交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set beacon true " + dominion.getName() + " " + page))
|
||||||
|
.append("信标交互"));
|
||||||
|
}
|
||||||
|
if (dominion.getBed()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set bed false " + dominion.getName() + " " + page))
|
||||||
|
.append("床交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set bed true " + dominion.getName() + " " + page))
|
||||||
|
.append("床交互"));
|
||||||
|
}
|
||||||
|
if (dominion.getBrew()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set brew false " + dominion.getName() + " " + page))
|
||||||
|
.append("使用酿造台"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set brew true " + dominion.getName() + " " + page))
|
||||||
|
.append("使用酿造台"));
|
||||||
|
}
|
||||||
|
if (dominion.getButton()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set button false " + dominion.getName() + " " + page))
|
||||||
|
.append("使用按钮"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set button true " + dominion.getName() + " " + page))
|
||||||
|
.append("使用按钮"));
|
||||||
|
}
|
||||||
|
if (dominion.getCake()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set cake false " + dominion.getName() + " " + page))
|
||||||
|
.append("使用蛋糕"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set cake true " + dominion.getName() + " " + page))
|
||||||
|
.append("使用蛋糕"));
|
||||||
|
}
|
||||||
|
if (dominion.getContainer()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set container false " + dominion.getName() + " " + page))
|
||||||
|
.append("容器交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set container true " + dominion.getName() + " " + page))
|
||||||
|
.append("容器交互"));
|
||||||
|
}
|
||||||
|
if (dominion.getCraft()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set craft false " + dominion.getName() + " " + page))
|
||||||
|
.append("合成"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set craft true " + dominion.getName() + " " + page))
|
||||||
|
.append("合成"));
|
||||||
|
}
|
||||||
|
if (dominion.getCreeperExplode()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set creeper_explode false " + dominion.getName() + " " + page))
|
||||||
|
.append("苦力怕爆炸"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set creeper_explode true " + dominion.getName() + " " + page))
|
||||||
|
.append("苦力怕爆炸"));
|
||||||
|
}
|
||||||
|
if (dominion.getDiode()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set diode false " + dominion.getName() + " " + page))
|
||||||
|
.append("中继器交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set diode true " + dominion.getName() + " " + page))
|
||||||
|
.append("中继器交互"));
|
||||||
|
}
|
||||||
|
if (dominion.getDoor()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set door false " + dominion.getName() + " " + page))
|
||||||
|
.append("门交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set door true " + dominion.getName() + " " + page))
|
||||||
|
.append("门交互"));
|
||||||
|
}
|
||||||
|
if (dominion.getDye()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set dye false " + dominion.getName() + " " + page))
|
||||||
|
.append("染色"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set dye true " + dominion.getName() + " " + page))
|
||||||
|
.append("染色"));
|
||||||
|
}
|
||||||
|
if (dominion.getEgg()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set egg false " + dominion.getName() + " " + page))
|
||||||
|
.append("投掷鸡蛋"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set egg true " + dominion.getName() + " " + page))
|
||||||
|
.append("投掷鸡蛋"));
|
||||||
|
}
|
||||||
|
if (dominion.getEnchant()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set enchant false " + dominion.getName() + " " + page))
|
||||||
|
.append("附魔"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set enchant true " + dominion.getName() + " " + page))
|
||||||
|
.append("附魔"));
|
||||||
|
}
|
||||||
|
if (dominion.getEnderPearl()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set ender_pearl false " + dominion.getName() + " " + page))
|
||||||
|
.append("末影珍珠"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set ender_pearl true " + dominion.getName() + " " + page))
|
||||||
|
.append("末影珍珠"));
|
||||||
|
}
|
||||||
|
if (dominion.getFeed()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set feed false " + dominion.getName() + " " + page))
|
||||||
|
.append("喂食"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set feed true " + dominion.getName() + " " + page))
|
||||||
|
.append("喂食"));
|
||||||
|
}
|
||||||
|
if (dominion.getFireSpread()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set fire_spread false " + dominion.getName() + " " + page))
|
||||||
|
.append("火焰蔓延"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set fire_spread true " + dominion.getName() + " " + page))
|
||||||
|
.append("火焰蔓延"));
|
||||||
|
}
|
||||||
|
if (dominion.getFlowInProtection()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set flow_in_protection false " + dominion.getName() + " " + page))
|
||||||
|
.append("流体保护"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set flow_in_protection true " + dominion.getName() + " " + page))
|
||||||
|
.append("流体保护"));
|
||||||
|
}
|
||||||
|
if (dominion.getGlow()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set glow false " + dominion.getName() + " " + page))
|
||||||
|
.append("发光"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set glow true " + dominion.getName() + " " + page))
|
||||||
|
.append("发光"));
|
||||||
|
}
|
||||||
|
if (dominion.getGrow()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set grow false " + dominion.getName() + " " + page))
|
||||||
|
.append("植物生长"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set grow true " + dominion.getName() + " " + page))
|
||||||
|
.append("植物生长"));
|
||||||
|
}
|
||||||
|
if (dominion.getHoney()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set honey false " + dominion.getName() + " " + page))
|
||||||
|
.append("蜂巢交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set honey true " + dominion.getName() + " " + page))
|
||||||
|
.append("蜂巢交互"));
|
||||||
|
}
|
||||||
|
if (dominion.getHook()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set hook false " + dominion.getName() + " " + page))
|
||||||
|
.append("钩子交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set hook true " + dominion.getName() + " " + page))
|
||||||
|
.append("钩子交互"));
|
||||||
|
}
|
||||||
|
if (dominion.getIgnite()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set ignite false " + dominion.getName() + " " + page))
|
||||||
|
.append("点燃"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set ignite true " + dominion.getName() + " " + page))
|
||||||
|
.append("点燃"));
|
||||||
|
}
|
||||||
|
if (dominion.getMobKilling()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set mob_killing false " + dominion.getName() + " " + page))
|
||||||
|
.append("生物伤害"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set mob_killing true " + dominion.getName() + " " + page))
|
||||||
|
.append("生物伤害"));
|
||||||
|
}
|
||||||
|
if (dominion.getMove()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set move false " + dominion.getName() + " " + page))
|
||||||
|
.append("移动"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set move true " + dominion.getName() + " " + page))
|
||||||
|
.append("移动"));
|
||||||
|
}
|
||||||
|
if (dominion.getPlace()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set place false " + dominion.getName() + " " + page))
|
||||||
|
.append("放置"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set place true " + dominion.getName() + " " + page))
|
||||||
|
.append("放置"));
|
||||||
|
}
|
||||||
|
if (dominion.getPressure()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set pressure false " + dominion.getName() + " " + page))
|
||||||
|
.append("压力板交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set pressure true " + dominion.getName() + " " + page))
|
||||||
|
.append("压力板交互"));
|
||||||
|
}
|
||||||
|
if (dominion.getRiding()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set riding false " + dominion.getName() + " " + page))
|
||||||
|
.append("骑乘"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set riding true " + dominion.getName() + " " + page))
|
||||||
|
.append("骑乘"));
|
||||||
|
}
|
||||||
|
if (dominion.getShear()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set shear false " + dominion.getName() + " " + page))
|
||||||
|
.append("剪羊毛"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set shear true " + dominion.getName() + " " + page))
|
||||||
|
.append("剪羊毛"));
|
||||||
|
}
|
||||||
|
if (dominion.getShoot()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set shoot false " + dominion.getName() + " " + page))
|
||||||
|
.append("发射"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set shoot true " + dominion.getName() + " " + page))
|
||||||
|
.append("发射"));
|
||||||
|
}
|
||||||
|
if (dominion.getTntExplode()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set tnt_explode false " + dominion.getName() + " " + page))
|
||||||
|
.append("TNT爆炸"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set tnt_explode true " + dominion.getName() + " " + page))
|
||||||
|
.append("TNT爆炸"));
|
||||||
|
}
|
||||||
|
if (dominion.getTrade()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set trade false " + dominion.getName() + " " + page))
|
||||||
|
.append("交易"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set trade true " + dominion.getName() + " " + page))
|
||||||
|
.append("交易"));
|
||||||
|
}
|
||||||
|
if (dominion.getVehicleDestroy()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set vehicle_destroy false " + dominion.getName() + " " + page))
|
||||||
|
.append("破坏载具"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set vehicle_destroy true " + dominion.getName() + " " + page))
|
||||||
|
.append("破坏载具"));
|
||||||
|
}
|
||||||
|
if (dominion.getWitherSpawn()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set wither_spawn false " + dominion.getName() + " " + page))
|
||||||
|
.append("凋零生成"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set wither_spawn true " + dominion.getName() + " " + page))
|
||||||
|
.append("凋零生成"));
|
||||||
|
}
|
||||||
|
if (dominion.getHarvest()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set harvest false " + dominion.getName() + " " + page))
|
||||||
|
.append("收获"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set harvest true " + dominion.getName() + " " + page))
|
||||||
|
.append("收获"));
|
||||||
|
}
|
||||||
|
view.showOn(player, page);
|
||||||
|
}
|
||||||
|
}
|
45
src/main/java/cn/lunadeer/dominion/tuis/DominionManage.java
Normal file
45
src/main/java/cn/lunadeer/dominion/tuis/DominionManage.java
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package cn.lunadeer.dominion.tuis;
|
||||||
|
|
||||||
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Button;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Line;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.View;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.getDominion;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
|
||||||
|
|
||||||
|
public class DominionManage {
|
||||||
|
public static void show(CommandSender sender, String[] args) {
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
DominionDTO dominion = getDominion(player, args);
|
||||||
|
if (dominion == null) {
|
||||||
|
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion manage <领地名称>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (noAuthToManage(player, dominion)) return;
|
||||||
|
Line size_info = Line.create()
|
||||||
|
.append(Button.create("尺寸信息", "/dominion info " + dominion.getName()))
|
||||||
|
.append("查看领地尺寸信息");
|
||||||
|
Line flag_info = Line.create()
|
||||||
|
.append(Button.create("权限设置", "/dominion flag_info " + dominion.getName()))
|
||||||
|
.append("管理领地默认权限");
|
||||||
|
Line privilege_list = Line.create()
|
||||||
|
.append(Button.create("玩家权限", "/dominion privilege_list " + dominion.getName()))
|
||||||
|
.append("管理玩家特权");
|
||||||
|
View view = View.create();
|
||||||
|
view.title("领地 " + dominion.getName() + " 管理界面")
|
||||||
|
.navigator(Line.create()
|
||||||
|
.append(Button.create("主菜单", "/dominion menu"))
|
||||||
|
.append(Button.create("我的领地", "/dominion list"))
|
||||||
|
.append(dominion.getName()))
|
||||||
|
.addLine(size_info)
|
||||||
|
.addLine(flag_info)
|
||||||
|
.addLine(privilege_list)
|
||||||
|
.showOn(player);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
package cn.lunadeer.dominion.tuis;
|
||||||
|
|
||||||
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
|
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||||
|
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||||
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Button;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Line;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.ListView;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.getDominion;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
|
||||||
|
|
||||||
|
public class DominionPrivilegeList {
|
||||||
|
|
||||||
|
public static void show(CommandSender sender, String[] args) {
|
||||||
|
int page = 1;
|
||||||
|
if (args.length == 3) {
|
||||||
|
try {
|
||||||
|
page = Integer.parseInt(args[2]);
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
DominionDTO dominion = getDominion(player, args);
|
||||||
|
if (dominion == null) {
|
||||||
|
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion privilege_list <领地名称>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ListView view = ListView.create(5, "/dominion privilege_list " + dominion.getName());
|
||||||
|
if (noAuthToManage(player, dominion)) return;
|
||||||
|
List<PlayerPrivilegeDTO> privileges = PlayerPrivilegeDTO.select(dominion.getId());
|
||||||
|
if (privileges.isEmpty()) {
|
||||||
|
Notification.warn(sender, "领地 " + dominion.getName() + " 没有任何玩家拥有特权");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
view.title("领地 " + dominion.getName() + " 玩家特权列表");
|
||||||
|
view.navigator(
|
||||||
|
Line.create()
|
||||||
|
.append(Button.create("主菜单", "/dominion menu"))
|
||||||
|
.append(Button.create("我的领地", "/dominion list"))
|
||||||
|
.append(Button.create("管理界面", "/dominion manage " + dominion.getName()))
|
||||||
|
.append("特权列表")
|
||||||
|
);
|
||||||
|
for (PlayerPrivilegeDTO privilege : privileges) {
|
||||||
|
PlayerDTO p_player = PlayerDTO.select(privilege.getPlayerUUID());
|
||||||
|
if (p_player == null) continue;
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(p_player.getLastKnownName())
|
||||||
|
.append(Button.createGreen("管理", "/dominion privilege_info " + p_player.getLastKnownName() + " " + dominion.getName()))
|
||||||
|
.append(Button.createRed("清空", "/dominion clear_privilege " + p_player.getLastKnownName() + " " + dominion.getName()))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
view.showOn(player, page);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package cn.lunadeer.dominion.tuis;
|
||||||
|
|
||||||
|
import cn.lunadeer.dominion.controllers.PlayerController;
|
||||||
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
|
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||||
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Button;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Line;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.View;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.getDominion;
|
||||||
|
|
||||||
|
public class DominionSizeInfo {
|
||||||
|
public static void show(CommandSender sender, String[] args) {
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
DominionDTO dominion = getDominion(player, args);
|
||||||
|
if (dominion == null) {
|
||||||
|
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion info <领地名称>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PlayerDTO owner = PlayerController.getPlayerDTO(dominion.getOwner());
|
||||||
|
Integer x1 = dominion.getX1();
|
||||||
|
Integer y1 = dominion.getY1();
|
||||||
|
Integer z1 = dominion.getZ1();
|
||||||
|
Integer x2 = dominion.getX2();
|
||||||
|
Integer y2 = dominion.getY2();
|
||||||
|
Integer z2 = dominion.getZ2();
|
||||||
|
View view = View.create();
|
||||||
|
view.title("领地 " + dominion.getName() + " 的尺寸信息")
|
||||||
|
.subtitle("领地归属:" + owner.getLastKnownName())
|
||||||
|
.addLine(Line.create().append("领地大小:").append((x2 - x1) + " x" + (y2 - y1) + " x" + (z2 - z1)))
|
||||||
|
.addLine(Line.create().append("中心坐标:").append((x1 + (x2 - x1) / 2) + " " + (y1 + (y2 - y1) / 2) + " " + (z1 + (z2 - z1) / 2)))
|
||||||
|
.addLine(Line.create().append("垂直高度:").append(String.valueOf(y2 - y1)))
|
||||||
|
.addLine(Line.create().append("水平面积:").append(String.valueOf((x2 - x1) * (z2 - z1))))
|
||||||
|
.addLine(Line.create().append("领地体积:").append(String.valueOf((x2 - x1) * (y2 - y1) * (z2 - z1))))
|
||||||
|
.actionBar(Line.create()
|
||||||
|
.append(Button.create("管理界面", "/dominion manage " + dominion.getName()))
|
||||||
|
.append(Button.create("权限列表", "/dominion flag_info " + dominion.getName())))
|
||||||
|
.showOn(player);
|
||||||
|
}
|
||||||
|
}
|
37
src/main/java/cn/lunadeer/dominion/tuis/ListDominion.java
Normal file
37
src/main/java/cn/lunadeer/dominion/tuis/ListDominion.java
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
package cn.lunadeer.dominion.tuis;
|
||||||
|
|
||||||
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Button;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Line;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.ListView;
|
||||||
|
import net.kyori.adventure.text.TextComponent;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
import static cn.lunadeer.dominion.commands.Helper.playerDominions;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.getPage;
|
||||||
|
|
||||||
|
public class ListDominion {
|
||||||
|
public static void show(CommandSender sender, String[] args) {
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
int page = getPage(args);
|
||||||
|
ListView view = ListView.create(5, "/dominion list");
|
||||||
|
List<String> dominions = playerDominions(sender);
|
||||||
|
if (dominions.isEmpty()) {
|
||||||
|
Notification.warn(sender, "你没有任何领地");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
view.title("我的领地列表");
|
||||||
|
view.navigator(Line.create().append(Button.create("主菜单", "/dominion menu")).append("我的领地"));
|
||||||
|
for (String dominion : dominions) {
|
||||||
|
TextComponent manage = Button.createGreen("管理", "/dominion manage " + dominion);
|
||||||
|
TextComponent delete = Button.createRed("删除", "/dominion delete " + dominion);
|
||||||
|
view.add(Line.create().append(dominion).append(manage).append(delete));
|
||||||
|
}
|
||||||
|
view.showOn(player, page);
|
||||||
|
}
|
||||||
|
}
|
28
src/main/java/cn/lunadeer/dominion/tuis/Menu.java
Normal file
28
src/main/java/cn/lunadeer/dominion/tuis/Menu.java
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package cn.lunadeer.dominion.tuis;
|
||||||
|
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Button;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Line;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.View;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
|
||||||
|
public class Menu {
|
||||||
|
public static void show(CommandSender sender, String[] args) {
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
Line list = Line.create()
|
||||||
|
.append(Button.create("我的领地", "/dominion list"))
|
||||||
|
.append("查看我的领地");
|
||||||
|
Line help = Line.create()
|
||||||
|
.append(Button.create("指令帮助", "/dominion help"))
|
||||||
|
.append("查看指令帮助");
|
||||||
|
View view = View.create();
|
||||||
|
view.title("Dominion 领地系统")
|
||||||
|
.navigator(Line.create().append("主菜单"))
|
||||||
|
.addLine(list)
|
||||||
|
.addLine(help)
|
||||||
|
.showOn(player);
|
||||||
|
}
|
||||||
|
}
|
337
src/main/java/cn/lunadeer/dominion/tuis/PrivilegeInfo.java
Normal file
337
src/main/java/cn/lunadeer/dominion/tuis/PrivilegeInfo.java
Normal file
@ -0,0 +1,337 @@
|
|||||||
|
package cn.lunadeer.dominion.tuis;
|
||||||
|
|
||||||
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||||
|
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||||
|
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||||
|
import cn.lunadeer.dominion.utils.Notification;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Button;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.Line;
|
||||||
|
import cn.lunadeer.dominion.utils.STUI.ListView;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.getDominion;
|
||||||
|
import static cn.lunadeer.dominion.tuis.Apis.noAuthToManage;
|
||||||
|
|
||||||
|
public class PrivilegeInfo {
|
||||||
|
// /dominion privilege_info <玩家名称> [领地名称] [页码]
|
||||||
|
public static void show(CommandSender sender, String[] args) {
|
||||||
|
Player player = playerOnly(sender);
|
||||||
|
if (player == null) return;
|
||||||
|
DominionDTO dominion = getDominion(player, args);
|
||||||
|
int page = 1;
|
||||||
|
if (args.length == 4) {
|
||||||
|
try {
|
||||||
|
page = Integer.parseInt(args[3]);
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String playerName = args[1];
|
||||||
|
if (dominion == null) {
|
||||||
|
Notification.error(sender, "你不在任何领地内,请指定领地名称 /dominion privilege_info <玩家名称> [领地名称]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ListView view = ListView.create(5, "/dominion privilege_info " + playerName + " " + dominion.getName());
|
||||||
|
if (noAuthToManage(player, dominion)) return;
|
||||||
|
PlayerDTO playerDTO = PlayerDTO.select(playerName);
|
||||||
|
if (playerDTO == null) {
|
||||||
|
Notification.error(sender, "玩家 " + playerName + " 不存在");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(playerDTO.getUuid(), dominion.getId());
|
||||||
|
if (privilege == null) {
|
||||||
|
Notification.warn(sender, "玩家 " + playerName + " 没有任何特权");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
view.title("玩家 " + playerName + " 在领地 " + dominion.getName() + " 的特权信息");
|
||||||
|
view.navigator(
|
||||||
|
Line.create()
|
||||||
|
.append(Button.create("主菜单", "/dominion menu"))
|
||||||
|
.append(Button.create("我的领地", "/dominion list"))
|
||||||
|
.append(Button.create("管理界面", "/dominion manage " + dominion.getName()))
|
||||||
|
.append(Button.create("特权列表", "/dominion privilege_list " + dominion.getName()))
|
||||||
|
.append("特权信息")
|
||||||
|
);
|
||||||
|
if (privilege.getAnchor()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " anchor false " + dominion.getName() + " " + page))
|
||||||
|
.append("重生锚"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " anchor true " + dominion.getName() + " " + page))
|
||||||
|
.append("重生锚"));
|
||||||
|
}
|
||||||
|
if (privilege.getAnimalKilling()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " animal_killing false " + dominion.getName() + " " + page))
|
||||||
|
.append("动物伤害"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " animal_killing true " + dominion.getName() + " " + page))
|
||||||
|
.append("动物伤害"));
|
||||||
|
}
|
||||||
|
if (privilege.getAnvil()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " anvil false " + dominion.getName() + " " + page))
|
||||||
|
.append("使用铁砧"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " anvil true " + dominion.getName() + " " + page))
|
||||||
|
.append("使用铁砧"));
|
||||||
|
}
|
||||||
|
if (privilege.getBeacon()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " beacon false " + dominion.getName() + " " + page))
|
||||||
|
.append("信标交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " beacon true " + dominion.getName() + " " + page))
|
||||||
|
.append("信标交互"));
|
||||||
|
}
|
||||||
|
if (privilege.getBed()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " bed false " + dominion.getName() + " " + page))
|
||||||
|
.append("床交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " bed true " + dominion.getName() + " " + page))
|
||||||
|
.append("床交互"));
|
||||||
|
}
|
||||||
|
if (privilege.getBrew()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " brew false " + dominion.getName() + " " + page))
|
||||||
|
.append("使用酿造台"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " brew true " + dominion.getName() + " " + page))
|
||||||
|
.append("使用酿造台"));
|
||||||
|
}
|
||||||
|
if (privilege.getButton()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " button false " + dominion.getName() + " " + page))
|
||||||
|
.append("使用按钮"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " button true " + dominion.getName() + " " + page))
|
||||||
|
.append("使用按钮"));
|
||||||
|
}
|
||||||
|
if (privilege.getCake()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " cake false " + dominion.getName() + " " + page))
|
||||||
|
.append("使用蛋糕"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " cake true " + dominion.getName() + " " + page))
|
||||||
|
.append("使用蛋糕"));
|
||||||
|
}
|
||||||
|
if (privilege.getContainer()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " container false " + dominion.getName() + " " + page))
|
||||||
|
.append("容器交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " container true " + dominion.getName() + " " + page))
|
||||||
|
.append("容器交互"));
|
||||||
|
}
|
||||||
|
if (privilege.getCraft()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " craft false " + dominion.getName() + " " + page))
|
||||||
|
.append("合成"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " craft true " + dominion.getName() + " " + page))
|
||||||
|
.append("合成"));
|
||||||
|
}
|
||||||
|
if (privilege.getDiode()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " diode false " + dominion.getName() + " " + page))
|
||||||
|
.append("中继器交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " diode true " + dominion.getName() + " " + page))
|
||||||
|
.append("中继器交互"));
|
||||||
|
}
|
||||||
|
if (privilege.getDoor()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " door false " + dominion.getName() + " " + page))
|
||||||
|
.append("门交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " door true " + dominion.getName() + " " + page))
|
||||||
|
.append("门交互"));
|
||||||
|
}
|
||||||
|
if (privilege.getDye()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " dye false " + dominion.getName() + " " + page))
|
||||||
|
.append("染色"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " dye true " + dominion.getName() + " " + page))
|
||||||
|
.append("染色"));
|
||||||
|
}
|
||||||
|
if (privilege.getEgg()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " egg false " + dominion.getName() + " " + page))
|
||||||
|
.append("投掷鸡蛋"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " egg true " + dominion.getName() + " " + page))
|
||||||
|
.append("投掷鸡蛋"));
|
||||||
|
}
|
||||||
|
if (privilege.getEnchant()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " enchant false " + dominion.getName() + " " + page))
|
||||||
|
.append("附魔"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " enchant true " + dominion.getName() + " " + page))
|
||||||
|
.append("附魔"));
|
||||||
|
}
|
||||||
|
if (privilege.getEnderPearl()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " ender_pearl false " + dominion.getName() + " " + page))
|
||||||
|
.append("末影珍珠"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " ender_pearl true " + dominion.getName() + " " + page))
|
||||||
|
.append("末影珍珠"));
|
||||||
|
}
|
||||||
|
if (privilege.getFeed()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " feed false " + dominion.getName() + " " + page))
|
||||||
|
.append("喂食"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " feed true " + dominion.getName() + " " + page))
|
||||||
|
.append("喂食"));
|
||||||
|
}
|
||||||
|
if (privilege.getGlow()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " glow false " + dominion.getName() + " " + page))
|
||||||
|
.append("发光"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " glow true " + dominion.getName() + " " + page))
|
||||||
|
.append("发光"));
|
||||||
|
}
|
||||||
|
if (privilege.getHoney()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " honey false " + dominion.getName() + " " + page))
|
||||||
|
.append("蜂巢交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " honey true " + dominion.getName() + " " + page))
|
||||||
|
.append("蜂巢交互"));
|
||||||
|
}
|
||||||
|
if (privilege.getHook()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " hook false " + dominion.getName() + " " + page))
|
||||||
|
.append("钩子交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " hook true " + dominion.getName() + " " + page))
|
||||||
|
.append("钩子交互"));
|
||||||
|
}
|
||||||
|
if (privilege.getIgnite()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " ignite false " + dominion.getName() + " " + page))
|
||||||
|
.append("点燃"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " ignite true " + dominion.getName() + " " + page))
|
||||||
|
.append("点燃"));
|
||||||
|
}
|
||||||
|
if (privilege.getMobKilling()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " mob_killing false " + dominion.getName() + " " + page))
|
||||||
|
.append("生物伤害"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " mob_killing true " + dominion.getName() + " " + page))
|
||||||
|
.append("生物伤害"));
|
||||||
|
}
|
||||||
|
if (privilege.getMove()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " move false " + dominion.getName() + " " + page))
|
||||||
|
.append("移动"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " move true " + dominion.getName() + " " + page))
|
||||||
|
.append("移动"));
|
||||||
|
}
|
||||||
|
if (privilege.getPlace()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " place false " + dominion.getName() + " " + page))
|
||||||
|
.append("放置"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " place true " + dominion.getName() + " " + page))
|
||||||
|
.append("放置"));
|
||||||
|
}
|
||||||
|
if (privilege.getPressure()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " pressure false " + dominion.getName() + " " + page))
|
||||||
|
.append("压力板交互"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " pressure true " + dominion.getName() + " " + page))
|
||||||
|
.append("压力板交互"));
|
||||||
|
}
|
||||||
|
if (privilege.getRiding()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " riding false " + dominion.getName() + " " + page))
|
||||||
|
.append("骑乘"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " riding true " + dominion.getName() + " " + page))
|
||||||
|
.append("骑乘"));
|
||||||
|
}
|
||||||
|
if (privilege.getShear()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " shear false " + dominion.getName() + " " + page))
|
||||||
|
.append("剪羊毛"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " shear true " + dominion.getName() + " " + page))
|
||||||
|
.append("剪羊毛"));
|
||||||
|
}
|
||||||
|
if (privilege.getShoot()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " shoot false " + dominion.getName() + " " + page))
|
||||||
|
.append("发射"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " shoot true " + dominion.getName() + " " + page))
|
||||||
|
.append("发射"));
|
||||||
|
}
|
||||||
|
if (privilege.getTrade()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " trade false " + dominion.getName() + " " + page))
|
||||||
|
.append("交易"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " trade true " + dominion.getName() + " " + page))
|
||||||
|
.append("交易"));
|
||||||
|
}
|
||||||
|
if (privilege.getVehicleDestroy()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " vehicle_destroy false " + dominion.getName() + " " + page))
|
||||||
|
.append("破坏载具"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " vehicle_destroy true " + dominion.getName() + " " + page))
|
||||||
|
.append("破坏载具"));
|
||||||
|
}
|
||||||
|
if (privilege.getHarvest()) {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createGreen("☑", "/dominion set_privilege " + playerName + " harvest false " + dominion.getName() + " " + page))
|
||||||
|
.append("收获"));
|
||||||
|
} else {
|
||||||
|
view.add(Line.create()
|
||||||
|
.append(Button.createRed("☐", "/dominion set_privilege " + playerName + " harvest true " + dominion.getName() + " " + page))
|
||||||
|
.append("收获"));
|
||||||
|
}
|
||||||
|
view.showOn(player, page);
|
||||||
|
}
|
||||||
|
}
|
@ -105,13 +105,13 @@ public class Database {
|
|||||||
" FOREIGN KEY (parent_dom_id) REFERENCES dominion(id)" +
|
" FOREIGN KEY (parent_dom_id) REFERENCES dominion(id)" +
|
||||||
");";
|
");";
|
||||||
|
|
||||||
// privilege template
|
// player privilege
|
||||||
sql += "CREATE TABLE IF NOT EXISTS privilege_template (" +
|
sql += "CREATE TABLE IF NOT EXISTS player_privilege (" +
|
||||||
" id SERIAL PRIMARY KEY," +
|
" id SERIAL PRIMARY KEY," +
|
||||||
" name TEXT NOT NULL," +
|
" player_uuid VARCHAR(36) NOT NULL," +
|
||||||
" creator VARCHAR(36) NOT NULL," +
|
" dom_id INT NOT NULL," +
|
||||||
" team BOOLEAN NOT NULL DEFAULT TRUE," +
|
|
||||||
|
|
||||||
|
" admin BOOLEAN NOT NULL DEFAULT FALSE," +
|
||||||
" anchor BOOLEAN NOT NULL DEFAULT FALSE," +
|
" anchor BOOLEAN NOT NULL DEFAULT FALSE," +
|
||||||
" animal_killing BOOLEAN NOT NULL DEFAULT FALSE," +
|
" animal_killing BOOLEAN NOT NULL DEFAULT FALSE," +
|
||||||
" anvil BOOLEAN NOT NULL DEFAULT FALSE," +
|
" anvil BOOLEAN NOT NULL DEFAULT FALSE," +
|
||||||
@ -143,20 +143,9 @@ public class Database {
|
|||||||
" trade BOOLEAN NOT NULL DEFAULT FALSE," +
|
" trade BOOLEAN NOT NULL DEFAULT FALSE," +
|
||||||
" vehicle_destroy BOOLEAN NOT NULL DEFAULT FALSE," +
|
" vehicle_destroy BOOLEAN NOT NULL DEFAULT FALSE," +
|
||||||
" harvest BOOLEAN NOT NULL DEFAULT FALSE," +
|
" harvest BOOLEAN NOT NULL DEFAULT FALSE," +
|
||||||
" UNIQUE (name, creator)," +
|
|
||||||
" FOREIGN KEY (creator) REFERENCES player_name(uuid)" +
|
|
||||||
");";
|
|
||||||
|
|
||||||
// player dominion privilege
|
|
||||||
sql += "CREATE TABLE IF NOT EXISTS player_dom_privilege (" +
|
|
||||||
" id SERIAL PRIMARY KEY," +
|
|
||||||
" player_uuid VARCHAR(36) NOT NULL," +
|
|
||||||
" admin BOOLEAN NOT NULL DEFAULT FALSE," +
|
|
||||||
" dom_id INT NOT NULL," +
|
|
||||||
" privilege_template_id INT NOT NULL," +
|
|
||||||
" FOREIGN KEY (player_uuid) REFERENCES player_name(uuid)," +
|
" FOREIGN KEY (player_uuid) REFERENCES player_name(uuid)," +
|
||||||
" FOREIGN KEY (dom_id) REFERENCES dominion(id)," +
|
" FOREIGN KEY (dom_id) REFERENCES dominion(id)" +
|
||||||
" FOREIGN KEY (privilege_template_id) REFERENCES privilege_template(id)" +
|
|
||||||
");";
|
");";
|
||||||
|
|
||||||
sql += "INSERT INTO player_name (" +
|
sql += "INSERT INTO player_name (" +
|
||||||
|
@ -10,7 +10,6 @@ import java.util.List;
|
|||||||
import static cn.lunadeer.dominion.utils.STUI.ViewStyles.main_color;
|
import static cn.lunadeer.dominion.utils.STUI.ViewStyles.main_color;
|
||||||
|
|
||||||
public class View {
|
public class View {
|
||||||
protected TextComponent title_decorate = Component.text("━", main_color);
|
|
||||||
protected TextComponent space = Component.text(" ");
|
protected TextComponent space = Component.text(" ");
|
||||||
protected TextComponent sub_title_decorate = Component.text("- ", main_color);
|
protected TextComponent sub_title_decorate = Component.text("- ", main_color);
|
||||||
protected TextComponent line_decorate = Component.text("⌗ ", main_color);
|
protected TextComponent line_decorate = Component.text("⌗ ", main_color);
|
||||||
@ -23,18 +22,11 @@ public class View {
|
|||||||
protected TextComponent divide_line = Component.text("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━", main_color);
|
protected TextComponent divide_line = Component.text("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━", main_color);
|
||||||
|
|
||||||
public void showOn(Player player) {
|
public void showOn(Player player) {
|
||||||
player.sendMessage(edge);
|
// player.sendMessage(edge);
|
||||||
TextComponent.Builder builder = Component.text();
|
TextComponent.Builder builder = Component.text();
|
||||||
int title_length = title.content().length();
|
builder.append(Component.text("__/", main_color));
|
||||||
int title_width = title_length * 2 + 2;
|
|
||||||
int decorate_count = divide_line.content().length() - title_width;
|
|
||||||
for (int i = 0; i < decorate_count / 2; i++) {
|
|
||||||
builder.append(title_decorate);
|
|
||||||
}
|
|
||||||
builder.append(space).append(title).append(space);
|
builder.append(space).append(title).append(space);
|
||||||
for (int i = 0; i < decorate_count / 2; i++) {
|
builder.append(Component.text("\\__", main_color));
|
||||||
builder.append(title_decorate);
|
|
||||||
}
|
|
||||||
player.sendMessage(builder.build());
|
player.sendMessage(builder.build());
|
||||||
if (subtitle != null) {
|
if (subtitle != null) {
|
||||||
player.sendMessage(divide_line);
|
player.sendMessage(divide_line);
|
||||||
|
Loading…
Reference in New Issue
Block a user