优化了错误处理框架
This commit is contained in:
parent
c30e5d9d66
commit
08d6e93e7e
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>cn.lunadeer</groupId>
|
<groupId>cn.lunadeer</groupId>
|
||||||
<artifactId>Dominion</artifactId>
|
<artifactId>Dominion</artifactId>
|
||||||
<version>1.30.11-beta</version>
|
<version>1.30.12-beta</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>Dominion</name>
|
<name>Dominion</name>
|
||||||
|
@ -5,6 +5,8 @@ import org.bukkit.block.BlockFace;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
@ -16,21 +18,16 @@ public interface AbstractOperator {
|
|||||||
public static final Integer FAILURE = 2;
|
public static final Integer FAILURE = 2;
|
||||||
|
|
||||||
private Integer success;
|
private Integer success;
|
||||||
private String message;
|
private List<String> messages;
|
||||||
|
|
||||||
public Result(Integer success, String message, Object... args) {
|
public Result(Integer success, String message, Object... args) {
|
||||||
this.success = success;
|
this.success = success;
|
||||||
this.message = String.format(message, args);
|
this.messages = new ArrayList<>();
|
||||||
|
this.messages.add(String.format(message, args));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Result setMessage(String message, Object... args) {
|
public Result addMessage(String message, Object... args) {
|
||||||
this.message = String.format(message, args);
|
this.messages.add(String.format(message, args));
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result appendMessage(String message, Object... args) {
|
|
||||||
this.message += " ";
|
|
||||||
this.message += String.format(message, args);
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,8 +35,8 @@ public interface AbstractOperator {
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMessage() {
|
public List<String> getMessages() {
|
||||||
return message;
|
return messages;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,11 +73,17 @@ public class BukkitPlayerOperator implements AbstractOperator {
|
|||||||
BukkitPlayerOperator operator = new BukkitPlayerOperator(player);
|
BukkitPlayerOperator operator = new BukkitPlayerOperator(player);
|
||||||
operator.getResponse().thenAccept(result -> {
|
operator.getResponse().thenAccept(result -> {
|
||||||
if (Objects.equals(result.getStatus(), BukkitPlayerOperator.Result.SUCCESS)) {
|
if (Objects.equals(result.getStatus(), BukkitPlayerOperator.Result.SUCCESS)) {
|
||||||
Notification.info(player, result.getMessage());
|
for (String msg : result.getMessages()) {
|
||||||
|
Notification.info(player, msg);
|
||||||
|
}
|
||||||
} else if (Objects.equals(result.getStatus(), BukkitPlayerOperator.Result.WARNING)) {
|
} else if (Objects.equals(result.getStatus(), BukkitPlayerOperator.Result.WARNING)) {
|
||||||
Notification.warn(player, result.getMessage());
|
for (String msg : result.getMessages()) {
|
||||||
|
Notification.warn(player, msg);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Notification.error(player, result.getMessage());
|
for (String msg : result.getMessages()) {
|
||||||
|
Notification.error(player, msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return operator;
|
return operator;
|
||||||
|
@ -64,29 +64,29 @@ public class DominionController {
|
|||||||
String parent_dominion_name) {
|
String parent_dominion_name) {
|
||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "创建领地失败");
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "创建领地失败");
|
||||||
if (name.isEmpty()) {
|
if (name.isEmpty()) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地名称不能为空"));
|
operator.setResponse(FAIL.addMessage("领地名称不能为空"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (name.contains(" ")) {
|
if (name.contains(" ")) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地名称不能包含空格"));
|
operator.setResponse(FAIL.addMessage("领地名称不能包含空格"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (DominionDTO.select(name) != null) {
|
if (DominionDTO.select(name) != null) {
|
||||||
operator.setResponse(FAIL.appendMessage("已经存在名称为 %s 的领地", name));
|
operator.setResponse(FAIL.addMessage("已经存在名称为 %s 的领地", name));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!loc1.getWorld().equals(loc2.getWorld())) {
|
if (!loc1.getWorld().equals(loc2.getWorld())) {
|
||||||
operator.setResponse(FAIL.appendMessage("选点世界不一致"));
|
operator.setResponse(FAIL.addMessage("选点世界不一致"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 检查世界是否可以创建
|
// 检查世界是否可以创建
|
||||||
if (worldNotValid(operator, loc1.getWorld().getName())) {
|
if (worldNotValid(operator, loc1.getWorld().getName())) {
|
||||||
operator.setResponse(FAIL.appendMessage("禁止在世界 %s 创建领地", loc1.getWorld().getName()));
|
operator.setResponse(FAIL.addMessage("禁止在世界 %s 创建领地", loc1.getWorld().getName()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 检查领地数量是否达到上限
|
// 检查领地数量是否达到上限
|
||||||
if (amountNotValid(operator)) {
|
if (amountNotValid(operator)) {
|
||||||
operator.setResponse(FAIL.appendMessage("你的领地数量已达上限(%d个)", Dominion.config.getLimitAmount()));
|
operator.setResponse(FAIL.addMessage("你的领地数量已达上限(%d个)", Dominion.config.getLimitAmount()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 检查领地大小是否合法
|
// 检查领地大小是否合法
|
||||||
@ -106,7 +106,7 @@ public class DominionController {
|
|||||||
parent_dominion = DominionDTO.select(parent_dominion_name);
|
parent_dominion = DominionDTO.select(parent_dominion_name);
|
||||||
}
|
}
|
||||||
if (parent_dominion == null) {
|
if (parent_dominion == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("父领地 %s 不存在", parent_dominion_name));
|
operator.setResponse(FAIL.addMessage("父领地 %s 不存在", parent_dominion_name));
|
||||||
if (parent_dominion_name.isEmpty()) {
|
if (parent_dominion_name.isEmpty()) {
|
||||||
XLogger.err("根领地丢失!");
|
XLogger.err("根领地丢失!");
|
||||||
}
|
}
|
||||||
@ -115,13 +115,13 @@ public class DominionController {
|
|||||||
// 是否是父领地的拥有者
|
// 是否是父领地的拥有者
|
||||||
if (parent_dominion.getId() != -1) {
|
if (parent_dominion.getId() != -1) {
|
||||||
if (notOwner(operator, parent_dominion)) {
|
if (notOwner(operator, parent_dominion)) {
|
||||||
operator.setResponse(FAIL.appendMessage("你不是父领地 %s 的拥有者,无法创建子领地", parent_dominion_name));
|
operator.setResponse(FAIL.addMessage("你不是父领地 %s 的拥有者,无法创建子领地", parent_dominion_name));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 如果parent_dominion不为-1 检查是否在同一世界
|
// 如果parent_dominion不为-1 检查是否在同一世界
|
||||||
if (parent_dominion.getId() != -1 && !parent_dominion.getWorld().equals(dominion.getWorld())) {
|
if (parent_dominion.getId() != -1 && !parent_dominion.getWorld().equals(dominion.getWorld())) {
|
||||||
operator.setResponse(FAIL.appendMessage("父领地与子领地不在同一世界。"));
|
operator.setResponse(FAIL.addMessage("父领地与子领地不在同一世界。"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 检查深度是否达到上限
|
// 检查深度是否达到上限
|
||||||
@ -130,7 +130,7 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
// 检查是否超出父领地范围
|
// 检查是否超出父领地范围
|
||||||
if (!isContained(dominion, parent_dominion)) {
|
if (!isContained(dominion, parent_dominion)) {
|
||||||
operator.setResponse(FAIL.appendMessage("超出父领地 %s 范围", parent_dominion.getName()));
|
operator.setResponse(FAIL.addMessage("超出父领地 %s 范围", parent_dominion.getName()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 获取此领地的所有同级领地
|
// 获取此领地的所有同级领地
|
||||||
@ -138,7 +138,7 @@ public class DominionController {
|
|||||||
// 检查是否与其他子领地冲突
|
// 检查是否与其他子领地冲突
|
||||||
for (DominionDTO sub_dominion : sub_dominions) {
|
for (DominionDTO sub_dominion : sub_dominions) {
|
||||||
if (isIntersect(sub_dominion, dominion)) {
|
if (isIntersect(sub_dominion, dominion)) {
|
||||||
operator.setResponse(FAIL.appendMessage("与领地 %s 冲突", sub_dominion.getName()));
|
operator.setResponse(FAIL.addMessage("与领地 %s 冲突", sub_dominion.getName()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -152,7 +152,7 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
float price = count * Dominion.config.getEconomyPrice();
|
float price = count * Dominion.config.getEconomyPrice();
|
||||||
if (Dominion.vault.getEconomy().getBalance(operator.getPlayer()) < price) {
|
if (Dominion.vault.getEconomy().getBalance(operator.getPlayer()) < price) {
|
||||||
operator.setResponse(FAIL.appendMessage("你的余额不足,创建此领地需要 %.2f %s", price, Dominion.vault.getEconomy().currencyNamePlural()));
|
operator.setResponse(FAIL.addMessage("你的余额不足,创建此领地需要 %.2f %s", price, Dominion.vault.getEconomy().currencyNamePlural()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.SUCCESS, "已扣除 %.2f %s", price, Dominion.vault.getEconomy().currencyNamePlural()));
|
operator.setResponse(new AbstractOperator.Result(AbstractOperator.Result.SUCCESS, "已扣除 %.2f %s", price, Dominion.vault.getEconomy().currencyNamePlural()));
|
||||||
@ -160,7 +160,7 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
dominion = DominionDTO.insert(dominion);
|
dominion = DominionDTO.insert(dominion);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("创建领地失败,数据库错误,请联系管理员"));
|
operator.setResponse(FAIL.addMessage("创建领地失败,数据库错误,请联系管理员"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (operator instanceof BukkitPlayerOperator) {
|
if (operator instanceof BukkitPlayerOperator) {
|
||||||
@ -206,7 +206,7 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
if (location != null) {
|
if (location != null) {
|
||||||
if (!location.getWorld().getName().equals(dominion.getWorld())) {
|
if (!location.getWorld().getName().equals(dominion.getWorld())) {
|
||||||
operator.setResponse(FAIL.appendMessage("禁止跨世界操作"));
|
operator.setResponse(FAIL.addMessage("禁止跨世界操作"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -236,7 +236,7 @@ public class DominionController {
|
|||||||
y1 -= size;
|
y1 -= size;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
operator.setResponse(FAIL.appendMessage("无效的方向"));
|
operator.setResponse(FAIL.addMessage("无效的方向"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sizeNotValid(operator, x1, y1, z1, x2, y2, z2)) {
|
if (sizeNotValid(operator, x1, y1, z1, x2, y2, z2)) {
|
||||||
@ -245,11 +245,11 @@ public class DominionController {
|
|||||||
// 校验是否超出父领地范围
|
// 校验是否超出父领地范围
|
||||||
DominionDTO parent_dominion = DominionDTO.select(dominion.getParentDomId());
|
DominionDTO parent_dominion = DominionDTO.select(dominion.getParentDomId());
|
||||||
if (parent_dominion == null) {
|
if (parent_dominion == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("父领地丢失"));
|
operator.setResponse(FAIL.addMessage("父领地丢失"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!isContained(x1, y1, z1, x2, y2, z2, parent_dominion)) {
|
if (!isContained(x1, y1, z1, x2, y2, z2, parent_dominion)) {
|
||||||
operator.setResponse(FAIL.appendMessage("超出父领地 %s 范围", parent_dominion.getName()));
|
operator.setResponse(FAIL.addMessage("超出父领地 %s 范围", parent_dominion.getName()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 获取同世界下的所有同级领地
|
// 获取同世界下的所有同级领地
|
||||||
@ -258,7 +258,7 @@ public class DominionController {
|
|||||||
if (isIntersect(exist_dominion, x1, y1, z1, x2, y2, z2)) {
|
if (isIntersect(exist_dominion, x1, y1, z1, x2, y2, z2)) {
|
||||||
// 如果是自己,跳过
|
// 如果是自己,跳过
|
||||||
if (exist_dominion.getId().equals(dominion.getId())) continue;
|
if (exist_dominion.getId().equals(dominion.getId())) continue;
|
||||||
operator.setResponse(FAIL.appendMessage("与领地 %s 冲突", exist_dominion.getName()));
|
operator.setResponse(FAIL.addMessage("与领地 %s 冲突", exist_dominion.getName()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -273,10 +273,10 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
float price = count * Dominion.config.getEconomyPrice();
|
float price = count * Dominion.config.getEconomyPrice();
|
||||||
if (Dominion.vault.getEconomy().getBalance(operator.getPlayer()) < price) {
|
if (Dominion.vault.getEconomy().getBalance(operator.getPlayer()) < price) {
|
||||||
operator.setResponse(FAIL.appendMessage("你的余额不足,扩展此领地需要 %.2f %s", price, Dominion.vault.getEconomy().currencyNamePlural()));
|
operator.setResponse(FAIL.addMessage("你的余额不足,扩展此领地需要 %.2f %s", price, Dominion.vault.getEconomy().currencyNamePlural()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SUCCESS.appendMessage("已扣除 %.2f %s", price, Dominion.vault.getEconomy().currencyNamePlural());
|
SUCCESS.addMessage("已扣除 %.2f %s", price, Dominion.vault.getEconomy().currencyNamePlural());
|
||||||
Dominion.vault.getEconomy().withdrawPlayer(operator.getPlayer(), price);
|
Dominion.vault.getEconomy().withdrawPlayer(operator.getPlayer(), price);
|
||||||
}
|
}
|
||||||
if (operator instanceof BukkitPlayerOperator) {
|
if (operator instanceof BukkitPlayerOperator) {
|
||||||
@ -325,7 +325,7 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
if (location != null) {
|
if (location != null) {
|
||||||
if (!location.getWorld().getName().equals(dominion.getWorld())) {
|
if (!location.getWorld().getName().equals(dominion.getWorld())) {
|
||||||
operator.setResponse(FAIL.appendMessage("禁止跨世界操作"));
|
operator.setResponse(FAIL.addMessage("禁止跨世界操作"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -355,12 +355,12 @@ public class DominionController {
|
|||||||
y1 += size;
|
y1 += size;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
operator.setResponse(FAIL.appendMessage("无效的方向"));
|
operator.setResponse(FAIL.addMessage("无效的方向"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 校验第二组坐标是否小于第一组坐标
|
// 校验第二组坐标是否小于第一组坐标
|
||||||
if (x1 >= x2 || y1 >= y2 || z1 >= z2) {
|
if (x1 >= x2 || y1 >= y2 || z1 >= z2) {
|
||||||
operator.setResponse(FAIL.appendMessage("缩小后的领地大小无效"));
|
operator.setResponse(FAIL.addMessage("缩小后的领地大小无效"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sizeNotValid(operator, x1, y1, z1, x2, y2, z2)) {
|
if (sizeNotValid(operator, x1, y1, z1, x2, y2, z2)) {
|
||||||
@ -370,7 +370,7 @@ public class DominionController {
|
|||||||
List<DominionDTO> sub_dominions = DominionDTO.selectByParentId(dominion.getWorld(), dominion.getId());
|
List<DominionDTO> sub_dominions = DominionDTO.selectByParentId(dominion.getWorld(), dominion.getId());
|
||||||
for (DominionDTO sub_dominion : sub_dominions) {
|
for (DominionDTO sub_dominion : sub_dominions) {
|
||||||
if (!isContained(sub_dominion, x1, y1, z1, x2, y2, z2)) {
|
if (!isContained(sub_dominion, x1, y1, z1, x2, y2, z2)) {
|
||||||
operator.setResponse(FAIL.appendMessage("缩小后的领地无法包含子领地 %s", sub_dominion.getName()));
|
operator.setResponse(FAIL.addMessage("缩小后的领地无法包含子领地 %s", sub_dominion.getName()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -385,7 +385,7 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
float refund = count * Dominion.config.getEconomyPrice() * Dominion.config.getEconomyRefund();
|
float refund = count * Dominion.config.getEconomyPrice() * Dominion.config.getEconomyRefund();
|
||||||
Dominion.vault.getEconomy().depositPlayer(operator.getPlayer(), refund);
|
Dominion.vault.getEconomy().depositPlayer(operator.getPlayer(), refund);
|
||||||
SUCCESS.appendMessage("已退还 %.2f %s", refund, Dominion.vault.getEconomy().currencyNamePlural());
|
SUCCESS.addMessage("已退还 %.2f %s", refund, Dominion.vault.getEconomy().currencyNamePlural());
|
||||||
}
|
}
|
||||||
if (operator instanceof BukkitPlayerOperator) {
|
if (operator instanceof BukkitPlayerOperator) {
|
||||||
World world = Dominion.instance.getServer().getWorld(dominion.getWorld());
|
World world = Dominion.instance.getServer().getWorld(dominion.getWorld());
|
||||||
@ -418,7 +418,7 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
if (sub_dominions.size() > 0) {
|
if (sub_dominions.size() > 0) {
|
||||||
sub_names = sub_names.substring(0, sub_names.length() - 2);
|
sub_names = sub_names.substring(0, sub_names.length() - 2);
|
||||||
WARNING.appendMessage("(子领地:%s)", sub_names);
|
WARNING.addMessage("(子领地:%s)", sub_names);
|
||||||
}
|
}
|
||||||
if (operator instanceof BukkitPlayerOperator) {
|
if (operator instanceof BukkitPlayerOperator) {
|
||||||
Notification.warn(operator.getPlayer(), "输入 /dominion delete %s force 确认删除", dominion_name);
|
Notification.warn(operator.getPlayer(), "输入 /dominion delete %s force 确认删除", dominion_name);
|
||||||
@ -442,7 +442,7 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
float refund = count * Dominion.config.getEconomyPrice() * Dominion.config.getEconomyRefund();
|
float refund = count * Dominion.config.getEconomyPrice() * Dominion.config.getEconomyRefund();
|
||||||
Dominion.vault.getEconomy().depositPlayer(operator.getPlayer(), refund);
|
Dominion.vault.getEconomy().depositPlayer(operator.getPlayer(), refund);
|
||||||
SUCCESS.appendMessage("已退还 %.2f %s", refund, Dominion.vault.getEconomy().currencyNamePlural());
|
SUCCESS.addMessage("已退还 %.2f %s", refund, Dominion.vault.getEconomy().currencyNamePlural());
|
||||||
}
|
}
|
||||||
operator.setResponse(SUCCESS);
|
operator.setResponse(SUCCESS);
|
||||||
}
|
}
|
||||||
@ -560,15 +560,15 @@ public class DominionController {
|
|||||||
public static void rename(AbstractOperator operator, String old_name, String new_name) {
|
public static void rename(AbstractOperator operator, String old_name, String new_name) {
|
||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "重命名领地失败");
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "重命名领地失败");
|
||||||
if (new_name.isEmpty()) {
|
if (new_name.isEmpty()) {
|
||||||
operator.setResponse(FAIL.appendMessage("新名称不能为空"));
|
operator.setResponse(FAIL.addMessage("新名称不能为空"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (new_name.contains(" ")) {
|
if (new_name.contains(" ")) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地名称不能包含空格"));
|
operator.setResponse(FAIL.addMessage("领地名称不能包含空格"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Objects.equals(old_name, new_name)) {
|
if (Objects.equals(old_name, new_name)) {
|
||||||
operator.setResponse(FAIL.appendMessage("新名称与旧名称相同"));
|
operator.setResponse(FAIL.addMessage("新名称与旧名称相同"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
DominionDTO dominion = getExistDomAndIsOwner(operator, old_name);
|
DominionDTO dominion = getExistDomAndIsOwner(operator, old_name);
|
||||||
@ -576,7 +576,7 @@ public class DominionController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (DominionDTO.select(new_name) != null) {
|
if (DominionDTO.select(new_name) != null) {
|
||||||
operator.setResponse(FAIL.appendMessage("已经存在名称为 %s 的领地", new_name));
|
operator.setResponse(FAIL.addMessage("已经存在名称为 %s 的领地", new_name));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
dominion.setName(new_name);
|
dominion.setName(new_name);
|
||||||
@ -595,11 +595,11 @@ public class DominionController {
|
|||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "转让领地失败");
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "转让领地失败");
|
||||||
PlayerDTO operatorDTO = PlayerDTO.select(operator.getUniqueId());
|
PlayerDTO operatorDTO = PlayerDTO.select(operator.getUniqueId());
|
||||||
if (operatorDTO == null) {
|
if (operatorDTO == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("操作者信息丢失,请联系管理员"));
|
operator.setResponse(FAIL.addMessage("操作者信息丢失,请联系管理员"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Objects.equals(player_name, operatorDTO.getLastKnownName())) {
|
if (Objects.equals(player_name, operatorDTO.getLastKnownName())) {
|
||||||
operator.setResponse(FAIL.appendMessage("不能将领地转让给自己"));
|
operator.setResponse(FAIL.addMessage("不能将领地转让给自己"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
DominionDTO dominion = getExistDomAndIsOwner(operator, dom_name);
|
DominionDTO dominion = getExistDomAndIsOwner(operator, dom_name);
|
||||||
@ -608,11 +608,11 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
PlayerDTO player = PlayerController.getPlayerDTO(player_name);
|
PlayerDTO player = PlayerController.getPlayerDTO(player_name);
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("玩家 %s 不存在", player_name));
|
operator.setResponse(FAIL.addMessage("玩家 %s 不存在", player_name));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (dominion.getParentDomId() != -1) {
|
if (dominion.getParentDomId() != -1) {
|
||||||
operator.setResponse(FAIL.appendMessage("子领地无法转让,你可以通过将 %s 设置为管理员来让其管理领地 %s ", player_name, dom_name));
|
operator.setResponse(FAIL.addMessage("子领地无法转让,你可以通过将 %s 设置为管理员来让其管理领地 %s ", player_name, dom_name));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DominionDTO> sub_dominions = getSubDominionsRecursive(dominion);
|
List<DominionDTO> sub_dominions = getSubDominionsRecursive(dominion);
|
||||||
@ -624,7 +624,7 @@ public class DominionController {
|
|||||||
}
|
}
|
||||||
if (sub_dominions.size() > 0) {
|
if (sub_dominions.size() > 0) {
|
||||||
sub_names = sub_names.substring(0, sub_names.length() - 2);
|
sub_names = sub_names.substring(0, sub_names.length() - 2);
|
||||||
WARNING.appendMessage("(子领地:%s)", sub_names);
|
WARNING.addMessage("(子领地:%s)", sub_names);
|
||||||
}
|
}
|
||||||
if (operator instanceof BukkitPlayerOperator) {
|
if (operator instanceof BukkitPlayerOperator) {
|
||||||
Notification.warn(operator.getPlayer(), "输入 /dominion give %s %s force 确认转让", dom_name, player_name);
|
Notification.warn(operator.getPlayer(), "输入 /dominion give %s %s force 确认转让", dom_name, player_name);
|
||||||
@ -716,27 +716,27 @@ public class DominionController {
|
|||||||
int y_length = y2 - y1;
|
int y_length = y2 - y1;
|
||||||
int z_length = z2 - z1;
|
int z_length = z2 - z1;
|
||||||
if (x_length < 4 || y_length < 4 || z_length < 4) {
|
if (x_length < 4 || y_length < 4 || z_length < 4) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地的任意一边长度不得小于4"));
|
operator.setResponse(FAIL.addMessage("领地的任意一边长度不得小于4"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (x_length > Dominion.config.getLimitSizeX() && Dominion.config.getLimitSizeX() > 0) {
|
if (x_length > Dominion.config.getLimitSizeX() && Dominion.config.getLimitSizeX() > 0) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地X方向长度不能超过 %s", Dominion.config.getLimitSizeX()));
|
operator.setResponse(FAIL.addMessage("领地X方向长度不能超过 %d", Dominion.config.getLimitSizeX()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (y_length > Dominion.config.getLimitSizeY() && Dominion.config.getLimitSizeY() > 0) {
|
if (y_length > Dominion.config.getLimitSizeY() && Dominion.config.getLimitSizeY() > 0) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地Y方向高度不能超过 %s", Dominion.config.getLimitSizeY()));
|
operator.setResponse(FAIL.addMessage("领地Y方向高度不能超过 %d", Dominion.config.getLimitSizeY()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (z_length > Dominion.config.getLimitSizeZ() && Dominion.config.getLimitSizeZ() > 0) {
|
if (z_length > Dominion.config.getLimitSizeZ() && Dominion.config.getLimitSizeZ() > 0) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地Z方向长度不能超过 %s", Dominion.config.getLimitSizeZ()));
|
operator.setResponse(FAIL.addMessage("领地Z方向长度不能超过 %d", Dominion.config.getLimitSizeZ()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (y2 > Dominion.config.getLimitMaxY()) {
|
if (y2 > Dominion.config.getLimitMaxY()) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地Y坐标不能超过 %s", Dominion.config.getLimitMaxY()));
|
operator.setResponse(FAIL.addMessage("领地Y坐标不能超过 %d", Dominion.config.getLimitMaxY()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (y1 < Dominion.config.getLimitMinY()) {
|
if (y1 < Dominion.config.getLimitMinY()) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地Y坐标不能低于 %s", Dominion.config.getLimitMinY()));
|
operator.setResponse(FAIL.addMessage("领地Y坐标不能低于 %d", Dominion.config.getLimitMinY()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -751,7 +751,7 @@ public class DominionController {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (parent_dom.getId() != -1 && Dominion.config.getLimitDepth() == 0) {
|
if (parent_dom.getId() != -1 && Dominion.config.getLimitDepth() == 0) {
|
||||||
operator.setResponse(FAIL.appendMessage("不允许创建子领地"));
|
operator.setResponse(FAIL.addMessage("不允许创建子领地"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (parent_dom.getId() == -1) {
|
if (parent_dom.getId() == -1) {
|
||||||
@ -763,7 +763,7 @@ public class DominionController {
|
|||||||
level++;
|
level++;
|
||||||
}
|
}
|
||||||
if (level >= Dominion.config.getLimitDepth()) {
|
if (level >= Dominion.config.getLimitDepth()) {
|
||||||
operator.setResponse(FAIL.appendMessage("子领地嵌套深度不能超过 %s", Dominion.config.getLimitDepth()));
|
operator.setResponse(FAIL.addMessage("子领地嵌套深度不能超过 %s", Dominion.config.getLimitDepth()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -787,11 +787,11 @@ public class DominionController {
|
|||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "");
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "");
|
||||||
DominionDTO dominion = DominionDTO.select(dominion_name);
|
DominionDTO dominion = DominionDTO.select(dominion_name);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
operator.setResponse(FAIL.setMessage("领地 %s 不存在", dominion_name));
|
operator.setResponse(FAIL.addMessage("领地 %s 不存在", dominion_name));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (notOwner(operator, dominion)) {
|
if (notOwner(operator, dominion)) {
|
||||||
operator.setResponse(FAIL.setMessage("你不是领地 %s 的拥有者", dominion_name));
|
operator.setResponse(FAIL.addMessage("你不是领地 %s 的拥有者", dominion_name));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return dominion;
|
return dominion;
|
||||||
|
@ -21,7 +21,6 @@ public class PrivilegeController {
|
|||||||
*
|
*
|
||||||
* @param operator 操作者
|
* @param operator 操作者
|
||||||
* @param player_name 玩家
|
* @param player_name 玩家
|
||||||
* @return 是否清空成功
|
|
||||||
*/
|
*/
|
||||||
public static void clearPrivilege(AbstractOperator operator, String player_name) {
|
public static void clearPrivilege(AbstractOperator operator, String player_name) {
|
||||||
DominionDTO dominion = Apis.getPlayerCurrentDominion(operator);
|
DominionDTO dominion = Apis.getPlayerCurrentDominion(operator);
|
||||||
@ -38,28 +37,27 @@ public class PrivilegeController {
|
|||||||
* @param operator 操作者
|
* @param operator 操作者
|
||||||
* @param player_name 玩家
|
* @param player_name 玩家
|
||||||
* @param dominionName 领地名称
|
* @param dominionName 领地名称
|
||||||
* @return 是否清空成功
|
|
||||||
*/
|
*/
|
||||||
public static void clearPrivilege(AbstractOperator operator, String player_name, String dominionName) {
|
public static void clearPrivilege(AbstractOperator operator, String player_name, String dominionName) {
|
||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "清空玩家 %s 在领地 %s 的权限失败", player_name, dominionName);
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "清空玩家 %s 在领地 %s 的权限失败", player_name, dominionName);
|
||||||
DominionDTO dominion = DominionDTO.select(dominionName);
|
DominionDTO dominion = DominionDTO.select(dominionName);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地 %s 不存在", dominionName));
|
operator.setResponse(FAIL.addMessage("领地 %s 不存在", dominionName));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (noAuthToChangeFlags(operator, dominion)) return;
|
if (noAuthToChangeFlags(operator, dominion)) return;
|
||||||
PlayerDTO player = PlayerController.getPlayerDTO(player_name);
|
PlayerDTO player = PlayerController.getPlayerDTO(player_name);
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("玩家 %s 不存在或没有登录过", player_name));
|
operator.setResponse(FAIL.addMessage("玩家 %s 不存在或没有登录过", player_name));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
||||||
if (privilege == null) {
|
if (privilege == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("玩家 %s 不是领地 %s 的成员", player_name, dominionName));
|
operator.setResponse(FAIL.addMessage("玩家 %s 不是领地 %s 的成员", player_name, dominionName));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (privilege.getAdmin() && notOwner(operator, dominion)) {
|
if (privilege.getAdmin() && notOwner(operator, dominion)) {
|
||||||
operator.setResponse(FAIL.appendMessage("你不是领地 %s 的拥有者,无法移除一个领地管理员", dominionName));
|
operator.setResponse(FAIL.addMessage("你不是领地 %s 的拥有者,无法移除一个领地管理员", dominionName));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PlayerPrivilegeDTO.delete(player.getUuid(), dominion.getId());
|
PlayerPrivilegeDTO.delete(player.getUuid(), dominion.getId());
|
||||||
@ -73,7 +71,6 @@ public class PrivilegeController {
|
|||||||
* @param player_name 玩家
|
* @param player_name 玩家
|
||||||
* @param flag 权限名称
|
* @param flag 权限名称
|
||||||
* @param value 权限值
|
* @param value 权限值
|
||||||
* @return 是否设置成功
|
|
||||||
*/
|
*/
|
||||||
public static void setPrivilege(AbstractOperator operator, String player_name, String flag, boolean value) {
|
public static void setPrivilege(AbstractOperator operator, String player_name, String flag, boolean value) {
|
||||||
DominionDTO dominion = Apis.getPlayerCurrentDominion(operator);
|
DominionDTO dominion = Apis.getPlayerCurrentDominion(operator);
|
||||||
@ -92,19 +89,18 @@ public class PrivilegeController {
|
|||||||
* @param flag 权限名称
|
* @param flag 权限名称
|
||||||
* @param value 权限值
|
* @param value 权限值
|
||||||
* @param dominionName 领地名称
|
* @param dominionName 领地名称
|
||||||
* @return 是否设置成功
|
|
||||||
*/
|
*/
|
||||||
public static void setPrivilege(AbstractOperator operator, String player_name, String flag, boolean value, String dominionName) {
|
public static void setPrivilege(AbstractOperator operator, String player_name, String flag, boolean value, String dominionName) {
|
||||||
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "设置玩家 %s 在领地 %s 的权限 %s 为 %s 失败", player_name, dominionName, flag, value);
|
AbstractOperator.Result FAIL = new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "设置玩家 %s 在领地 %s 的权限 %s 为 %s 失败", player_name, dominionName, flag, value);
|
||||||
DominionDTO dominion = DominionDTO.select(dominionName);
|
DominionDTO dominion = DominionDTO.select(dominionName);
|
||||||
if (dominion == null) {
|
if (dominion == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("领地 %s 不存在", dominionName));
|
operator.setResponse(FAIL.addMessage("领地 %s 不存在", dominionName));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (noAuthToChangeFlags(operator, dominion)) return;
|
if (noAuthToChangeFlags(operator, dominion)) return;
|
||||||
PlayerDTO player = PlayerController.getPlayerDTO(player_name);
|
PlayerDTO player = PlayerController.getPlayerDTO(player_name);
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("玩家 %s 不存在或没有登录过", player_name));
|
operator.setResponse(FAIL.addMessage("玩家 %s 不存在或没有登录过", player_name));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
||||||
@ -114,14 +110,14 @@ public class PrivilegeController {
|
|||||||
}
|
}
|
||||||
if (flag.equals("admin")) {
|
if (flag.equals("admin")) {
|
||||||
if (notOwner(operator, dominion)) {
|
if (notOwner(operator, dominion)) {
|
||||||
operator.setResponse(FAIL.appendMessage("你不是领地 %s 的拥有者,无法设置/取消其他玩家为管理员", dominionName));
|
operator.setResponse(FAIL.addMessage("你不是领地 %s 的拥有者,无法设置/取消其他玩家为管理员", dominionName));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
privilege.setAdmin(value);
|
privilege.setAdmin(value);
|
||||||
} else {
|
} else {
|
||||||
Flag f = Flag.getFlag(flag);
|
Flag f = Flag.getFlag(flag);
|
||||||
if (f == null) {
|
if (f == null) {
|
||||||
operator.setResponse(FAIL.appendMessage("未知的领地权限 %s", flag));
|
operator.setResponse(FAIL.addMessage("未知的领地权限 %s", flag));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
privilege.setFlagValue(f, value);
|
privilege.setFlagValue(f, value);
|
||||||
|
Reference in New Issue
Block a user