diff --git a/pom.xml b/pom.xml
index 6b93e0c..378267a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
cn.lunadeer
Dominion
- 1.37.0-beta
+ 1.37.1-beta
jar
Dominion
diff --git a/src/main/java/cn/lunadeer/dominion/Cache.java b/src/main/java/cn/lunadeer/dominion/Cache.java
index 6a9b4e2..f935736 100644
--- a/src/main/java/cn/lunadeer/dominion/Cache.java
+++ b/src/main/java/cn/lunadeer/dominion/Cache.java
@@ -1,9 +1,12 @@
package cn.lunadeer.dominion;
-import cn.lunadeer.dominion.dtos.*;
+import cn.lunadeer.dominion.dtos.DominionDTO;
+import cn.lunadeer.dominion.dtos.Flag;
+import cn.lunadeer.dominion.dtos.GroupDTO;
+import cn.lunadeer.dominion.dtos.MemberDTO;
+import cn.lunadeer.dominion.utils.Particle;
import cn.lunadeer.dominion.utils.ResMigration;
import cn.lunadeer.minecraftpluginutils.Notification;
-import cn.lunadeer.minecraftpluginutils.ParticleRender;
import cn.lunadeer.minecraftpluginutils.Scheduler;
import cn.lunadeer.minecraftpluginutils.XLogger;
import org.bukkit.GameMode;
@@ -11,7 +14,6 @@ import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
-import javax.annotation.Nullable;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.CompletableFuture;
@@ -20,6 +22,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import static cn.lunadeer.dominion.DominionNode.getLocInDominionNode;
+import static cn.lunadeer.dominion.DominionNode.isInDominion;
public class Cache {
@@ -212,7 +215,7 @@ public class Cache {
if (last_in_dom_id != null) {
last_dominion = id_dominions.get(last_in_dom_id);
}
- if (isInDominion(last_dominion, player)) {
+ if (isInDominion(last_dominion, player.getLocation())) {
if (dominion_children.get(last_in_dom_id) == null || dominion_children.get(last_in_dom_id).size() == 0) {
// 如果玩家仍在领地内,且领地没有子领地,则直接返回
if (recheckPlayerState) {
@@ -249,9 +252,7 @@ public class Cache {
player_current_dominion_id.put(player.getUniqueId(), current_dominion.getId());
// show border
if (current_dominion.getFlagValue(Flag.SHOW_BORDER)) {
- ParticleRender.showBoxFace(player,
- current_dominion.getLocation1(),
- current_dominion.getLocation2());
+ Particle.showBorder(player, current_dominion);
}
return current_dominion;
}
@@ -361,17 +362,6 @@ public class Cache {
return player_uuid_to_member.get(player_uuid).get(dominion.getId());
}
- private static boolean isInDominion(@Nullable DominionDTO dominion, Player player) {
- if (dominion == null) return false;
- if (!Objects.equals(dominion.getWorld(), player.getWorld().getName())) return false;
- double x = player.getLocation().getX();
- double y = player.getLocation().getY();
- double z = player.getLocation().getZ();
- return x >= dominion.getX1() && x <= dominion.getX2() &&
- y >= dominion.getY1() && y <= dominion.getY2() &&
- z >= dominion.getZ1() && z <= dominion.getZ2();
- }
-
public DominionDTO getDominion(Integer id) {
return id_dominions.get(id);
}
diff --git a/src/main/java/cn/lunadeer/dominion/Dominion.java b/src/main/java/cn/lunadeer/dominion/Dominion.java
index 9f9c899..3ffb019 100644
--- a/src/main/java/cn/lunadeer/dominion/Dominion.java
+++ b/src/main/java/cn/lunadeer/dominion/Dominion.java
@@ -1,6 +1,5 @@
package cn.lunadeer.dominion;
-import cn.lunadeer.dominion.dtos.PrivilegeTemplateDTO;
import cn.lunadeer.dominion.events.EnvironmentEvents;
import cn.lunadeer.dominion.events.PlayerEvents;
import cn.lunadeer.dominion.events.SelectPointEvents;
diff --git a/src/main/java/cn/lunadeer/dominion/DominionNode.java b/src/main/java/cn/lunadeer/dominion/DominionNode.java
index 4158dde..987a519 100644
--- a/src/main/java/cn/lunadeer/dominion/DominionNode.java
+++ b/src/main/java/cn/lunadeer/dominion/DominionNode.java
@@ -72,8 +72,8 @@ public class DominionNode {
double x = location.getX();
double y = location.getY();
double z = location.getZ();
- return x >= dominion.getX1() && x <= dominion.getX2() &&
- y >= dominion.getY1() && y <= dominion.getY2() &&
- z >= dominion.getZ1() && z <= dominion.getZ2();
+ return x >= dominion.getX1() && x < dominion.getX2() &&
+ y >= dominion.getY1() && y < dominion.getY2() &&
+ z >= dominion.getZ1() && z < dominion.getZ2();
}
}
diff --git a/src/main/java/cn/lunadeer/dominion/controllers/DominionController.java b/src/main/java/cn/lunadeer/dominion/controllers/DominionController.java
index 1e98c76..32a4713 100644
--- a/src/main/java/cn/lunadeer/dominion/controllers/DominionController.java
+++ b/src/main/java/cn/lunadeer/dominion/controllers/DominionController.java
@@ -4,8 +4,8 @@ import cn.lunadeer.dominion.Cache;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.PlayerDTO;
+import cn.lunadeer.dominion.utils.Particle;
import cn.lunadeer.minecraftpluginutils.Notification;
-import cn.lunadeer.minecraftpluginutils.ParticleRender;
import cn.lunadeer.minecraftpluginutils.VaultConnect;
import cn.lunadeer.minecraftpluginutils.XLogger;
import org.bukkit.Location;
@@ -786,9 +786,7 @@ public class DominionController {
*/
private static void handleParticle(AbstractOperator operator, DominionDTO dominion) {
if (operator instanceof BukkitPlayerOperator) {
- ParticleRender.showBoxFace(operator.getPlayer(),
- dominion.getLocation1(),
- dominion.getLocation2());
+ Particle.showBorder(operator.getPlayer(), dominion);
}
}
diff --git a/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java b/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java
index d9ecccd..58c07f8 100644
--- a/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java
+++ b/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java
@@ -1,10 +1,9 @@
package cn.lunadeer.dominion.events;
-import cn.lunadeer.dominion.Cache;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.dtos.DominionDTO;
+import cn.lunadeer.dominion.utils.Particle;
import cn.lunadeer.minecraftpluginutils.Notification;
-import cn.lunadeer.minecraftpluginutils.ParticleRender;
import cn.lunadeer.minecraftpluginutils.VaultConnect;
import org.bukkit.Location;
import org.bukkit.World;
@@ -95,7 +94,7 @@ public class SelectPointEvents implements Listener {
float price = count * Dominion.config.getEconomyPrice();
Notification.info(player, "预计领地创建价格为 %.2f %s", price, VaultConnect.instance.currencyNamePlural());
}
- ParticleRender.showBoxFace(player, dominion.getLocation1(), dominion.getLocation2());
+ Particle.showBorder(player, dominion);
Notification.info(player, "尺寸: %d x %d x %d", dominion.getWidthX(), dominion.getHeight(), dominion.getWidthZ());
Notification.info(player, "面积: %d", dominion.getSquare());
Notification.info(player, "高度: %d", dominion.getHeight());
diff --git a/src/main/java/cn/lunadeer/dominion/tuis/AllDominion.java b/src/main/java/cn/lunadeer/dominion/tuis/AllDominion.java
index 602a2cb..8a8b9e0 100644
--- a/src/main/java/cn/lunadeer/dominion/tuis/AllDominion.java
+++ b/src/main/java/cn/lunadeer/dominion/tuis/AllDominion.java
@@ -1,6 +1,5 @@
package cn.lunadeer.dominion.tuis;
-import cn.lunadeer.dominion.Cache;
import cn.lunadeer.dominion.DominionNode;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
diff --git a/src/main/java/cn/lunadeer/dominion/tuis/dominion/DominionList.java b/src/main/java/cn/lunadeer/dominion/tuis/dominion/DominionList.java
index 24d0cda..8b852cc 100644
--- a/src/main/java/cn/lunadeer/dominion/tuis/dominion/DominionList.java
+++ b/src/main/java/cn/lunadeer/dominion/tuis/dominion/DominionList.java
@@ -1,6 +1,5 @@
package cn.lunadeer.dominion.tuis.dominion;
-import cn.lunadeer.dominion.Cache;
import cn.lunadeer.dominion.DominionNode;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
diff --git a/src/main/java/cn/lunadeer/dominion/tuis/dominion/manage/SizeInfo.java b/src/main/java/cn/lunadeer/dominion/tuis/dominion/manage/SizeInfo.java
index 0ecde11..ec7284c 100644
--- a/src/main/java/cn/lunadeer/dominion/tuis/dominion/manage/SizeInfo.java
+++ b/src/main/java/cn/lunadeer/dominion/tuis/dominion/manage/SizeInfo.java
@@ -1,11 +1,10 @@
package cn.lunadeer.dominion.tuis.dominion.manage;
-import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.controllers.PlayerController;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.PlayerDTO;
+import cn.lunadeer.dominion.utils.Particle;
import cn.lunadeer.minecraftpluginutils.Notification;
-import cn.lunadeer.minecraftpluginutils.ParticleRender;
import cn.lunadeer.minecraftpluginutils.stui.View;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
@@ -49,8 +48,6 @@ public class SizeInfo {
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
.append(Button.create("访客权限").setExecuteCommand("/dominion guest_setting " + dominion.getName()).build()))
.showOn(player);
- ParticleRender.showBoxFace(player,
- dominion.getLocation1(),
- dominion.getLocation2());
+ Particle.showBorder(player, dominion);
}
}
diff --git a/src/main/java/cn/lunadeer/dominion/utils/Particle.java b/src/main/java/cn/lunadeer/dominion/utils/Particle.java
new file mode 100644
index 0000000..3b3065a
--- /dev/null
+++ b/src/main/java/cn/lunadeer/dominion/utils/Particle.java
@@ -0,0 +1,22 @@
+package cn.lunadeer.dominion.utils;
+
+import cn.lunadeer.dominion.dtos.DominionDTO;
+import cn.lunadeer.minecraftpluginutils.ParticleRender;
+import org.bukkit.entity.Player;
+
+public class Particle {
+
+ public static void showBorder(Player player, DominionDTO dominion) {
+ // 由于领地的坐标系统是方块坐标,所以大端需要减去1才是实际角点坐标
+ ParticleRender.showBoxFace(player,
+ dominion.getLocation1().getWorld(),
+ dominion.getLocation1().getBlockX(),
+ dominion.getLocation1().getBlockY(),
+ dominion.getLocation1().getBlockZ(),
+ dominion.getLocation2().getBlockX(),
+ dominion.getLocation2().getBlockY(),
+ dominion.getLocation2().getBlockZ()
+ );
+ }
+
+}