diff --git a/pom.xml b/pom.xml
index 8954e02..251cf7c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
cn.lunadeer
Dominion
- 1.20.2-beta
+ 1.20.3-beta
jar
Dominion
diff --git a/src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java b/src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java
index 59da299..900f98a 100644
--- a/src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java
+++ b/src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java
@@ -6,9 +6,7 @@ import cn.lunadeer.dominion.controllers.DominionController;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
import cn.lunadeer.dominion.utils.Notification;
-import cn.lunadeer.dominion.utils.XLogger;
import org.bukkit.Location;
-import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
diff --git a/src/main/java/cn/lunadeer/dominion/controllers/DominionController.java b/src/main/java/cn/lunadeer/dominion/controllers/DominionController.java
index 6e5613f..272eacd 100644
--- a/src/main/java/cn/lunadeer/dominion/controllers/DominionController.java
+++ b/src/main/java/cn/lunadeer/dominion/controllers/DominionController.java
@@ -90,21 +90,6 @@ public class DominionController {
loc2.getBlockX(), loc2.getBlockY(), loc2.getBlockZ())) {
return null;
}
- // 检查经济
- if (Dominion.config.getEconomyEnable()) {
- int count;
- if (Dominion.config.getEconomyOnlyXZ()) {
- count = (loc2.getBlockX() - loc1.getBlockX() + 1) * (loc2.getBlockZ() - loc1.getBlockZ() + 1);
- } else {
- count = (loc2.getBlockX() - loc1.getBlockX() + 1) * (loc2.getBlockY() - loc1.getBlockY() + 1) * (loc2.getBlockZ() - loc1.getBlockZ() + 1);
- }
- double price = count * Dominion.config.getEconomyPrice();
- if (Dominion.vault.getEconomy().getBalance(owner) < price) {
- Notification.error(owner, "你的余额不足,创建此领地需要 " + price + " " + Dominion.vault.getEconomy().currencyNamePlural());
- return null;
- }
- Dominion.vault.getEconomy().withdrawPlayer(owner, price);
- }
DominionDTO dominion = new DominionDTO(owner.getUniqueId(), name, owner.getWorld().getName(),
(int) Math.min(loc1.getX(), loc2.getX()), (int) Math.min(loc1.getY(), loc2.getY()),
(int) Math.min(loc1.getZ(), loc2.getZ()), (int) Math.max(loc1.getX(), loc2.getX()),
@@ -151,6 +136,22 @@ public class DominionController {
return null;
}
}
+ // 检查经济
+ if (Dominion.config.getEconomyEnable()) {
+ int count;
+ if (Dominion.config.getEconomyOnlyXZ()) {
+ count = (loc2.getBlockX() - loc1.getBlockX() + 1) * (loc2.getBlockZ() - loc1.getBlockZ() + 1);
+ } else {
+ count = (loc2.getBlockX() - loc1.getBlockX() + 1) * (loc2.getBlockY() - loc1.getBlockY() + 1) * (loc2.getBlockZ() - loc1.getBlockZ() + 1);
+ }
+ double price = count * Dominion.config.getEconomyPrice();
+ if (Dominion.vault.getEconomy().getBalance(owner) < price) {
+ Notification.error(owner, "你的余额不足,创建此领地需要 " + price + " " + Dominion.vault.getEconomy().currencyNamePlural());
+ return null;
+ }
+ Notification.info(owner, "已扣除 " + price + " " + Dominion.vault.getEconomy().currencyNamePlural());
+ Dominion.vault.getEconomy().withdrawPlayer(owner, price);
+ }
dominion = DominionDTO.insert(dominion);
if (dominion == null) {
Notification.error(owner, "创建失败,详细错误请联系管理员查询日志(当前时间:" + Time.nowStr() + ")");
@@ -264,6 +265,7 @@ public class DominionController {
Notification.error(operator, "你的余额不足,扩展此领地需要 " + price + " " + Dominion.vault.getEconomy().currencyNamePlural());
return null;
}
+ Notification.info(operator, "已扣除 " + price + " " + Dominion.vault.getEconomy().currencyNamePlural());
Dominion.vault.getEconomy().withdrawPlayer(operator, price);
}
return dominion.setXYZ(x1, y1, z1, x2, y2, z2);
@@ -364,7 +366,7 @@ public class DominionController {
}
double refund = count * Dominion.config.getEconomyPrice() * Dominion.config.getEconomyRefund();
Dominion.vault.getEconomy().depositPlayer(operator, refund);
- XLogger.info("已经退还 " + refund + " " + Dominion.vault.getEconomy().currencyNamePlural());
+ Notification.info(operator, "已经退还 " + refund + " " + Dominion.vault.getEconomy().currencyNamePlural());
}
return dominion.setXYZ(x1, y1, z1, x2, y2, z2);
}
@@ -414,7 +416,7 @@ public class DominionController {
}
double refund = count * Dominion.config.getEconomyPrice() * Dominion.config.getEconomyRefund();
Dominion.vault.getEconomy().depositPlayer(operator, refund);
- XLogger.info("已经退还 " + refund + " " + Dominion.vault.getEconomy().currencyNamePlural());
+ Notification.info(operator, "已经退还 " + refund + " " + Dominion.vault.getEconomy().currencyNamePlural());
}
Notification.info(operator, "领地 " + dominion_name + " 及其所有子领地已删除");
}
diff --git a/src/main/java/cn/lunadeer/dominion/events/PlayerEvents.java b/src/main/java/cn/lunadeer/dominion/events/PlayerEvents.java
index 46eca5c..e74851e 100644
--- a/src/main/java/cn/lunadeer/dominion/events/PlayerEvents.java
+++ b/src/main/java/cn/lunadeer/dominion/events/PlayerEvents.java
@@ -8,7 +8,6 @@ import cn.lunadeer.dominion.utils.Notification;
import io.papermc.paper.event.entity.EntityDyeEvent;
import org.bukkit.Location;
import org.bukkit.Material;
-import org.bukkit.NamespacedKey;
import org.bukkit.block.Block;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
@@ -27,12 +26,8 @@ import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.*;
import org.bukkit.event.vehicle.VehicleDestroyEvent;
import org.bukkit.inventory.Inventory;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.persistence.PersistentDataType;
import org.spigotmc.event.entity.EntityMountEvent;
-import java.util.Objects;
-
import static cn.lunadeer.dominion.events.Apis.getInvDominion;
public class PlayerEvents implements Listener {
diff --git a/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java b/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java
index 3ff8ebd..28d1b33 100644
--- a/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java
+++ b/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java
@@ -3,7 +3,7 @@ package cn.lunadeer.dominion.events;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.utils.Notification;
import org.bukkit.Location;
-import org.bukkit.Material;
+import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -50,6 +50,31 @@ public class SelectPointEvents implements Listener {
}
if (points.size() == 2) {
+ World world = points.get(0).getWorld();
+ if (world == null) {
+ return;
+ }
+
+ Location loc1 = points.get(0);
+ Location loc2 = points.get(1);
+ int minX = Math.min(loc1.getBlockX(), loc2.getBlockX());
+ int minY = Math.min(loc1.getBlockY(), loc2.getBlockY());
+ int minZ = Math.min(loc1.getBlockZ(), loc2.getBlockZ());
+ int maxX = Math.max(loc1.getBlockX(), loc2.getBlockX());
+ int maxY = Math.max(loc1.getBlockY(), loc2.getBlockY());
+ int maxZ = Math.max(loc1.getBlockZ(), loc2.getBlockZ());
+ if (Dominion.config.getEconomyEnable()) {
+ int count;
+ if (Dominion.config.getEconomyOnlyXZ()) {
+ count = (maxX - minX) * (maxZ - minZ);
+ } else {
+ count = (maxX - minX) * (maxY - minY) * (maxZ - minZ);
+ }
+ double price = count * Dominion.config.getEconomyPrice();
+ Notification.info(player, "预计领地创建价格为 " + price + " " + Dominion.vault.getEconomy().currencyNamePlural());
+ }
+ // todo 用粒子效果显示边界
+
Notification.info(player, "已选择两个点,可以使用 /dominion create <领地名称> 创建领地");
Notification.info(player, "尺寸为 " +
Math.abs(points.get(1).getX() - points.get(0).getX()) + " x " +
diff --git a/src/main/java/cn/lunadeer/dominion/tuis/DominionManage.java b/src/main/java/cn/lunadeer/dominion/tuis/DominionManage.java
index 9dfc6dd..b5b3520 100644
--- a/src/main/java/cn/lunadeer/dominion/tuis/DominionManage.java
+++ b/src/main/java/cn/lunadeer/dominion/tuis/DominionManage.java
@@ -5,7 +5,6 @@ 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 org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
diff --git a/src/main/java/cn/lunadeer/dominion/tuis/Menu.java b/src/main/java/cn/lunadeer/dominion/tuis/Menu.java
index e397cfc..e2243f4 100644
--- a/src/main/java/cn/lunadeer/dominion/tuis/Menu.java
+++ b/src/main/java/cn/lunadeer/dominion/tuis/Menu.java
@@ -1,6 +1,9 @@
package cn.lunadeer.dominion.tuis;
-import cn.lunadeer.dominion.utils.STUI.*;
+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.ViewStyles;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import org.bukkit.command.CommandSender;
diff --git a/src/main/java/cn/lunadeer/dominion/utils/GiteaReleaseCheck.java b/src/main/java/cn/lunadeer/dominion/utils/GiteaReleaseCheck.java
index c160dc3..6f15219 100644
--- a/src/main/java/cn/lunadeer/dominion/utils/GiteaReleaseCheck.java
+++ b/src/main/java/cn/lunadeer/dominion/utils/GiteaReleaseCheck.java
@@ -6,7 +6,10 @@ import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import javax.net.ssl.HttpsURLConnection;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.InputStreamReader;
import java.net.URL;
import java.nio.file.Files;
import java.util.concurrent.TimeUnit;