diff --git a/pom.xml b/pom.xml index ed507ed..ce02b18 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.lunadeer Dominion - 1.33.6-beta + 1.33.7-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 b9b28f6..b63ad5f 100644 --- a/src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java +++ b/src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java @@ -400,21 +400,33 @@ public class DominionOperate { } if (Dominion.config.getTpDelay() > 0) { Notification.info(player, "传送将在 %d 秒后执行", Dominion.config.getTpDelay()); + Scheduler.runTaskAsync(() -> { + int i = Dominion.config.getTpDelay(); + while (i > 0) { + if (!player.isOnline()) { + return; + } + Notification.actionBar(player, "传送倒计时 %d 秒", i); + i--; + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + XLogger.err(e.getMessage()); + } + } + }); } Cache.instance.NextTimeAllowTeleport.put(player.getUniqueId(), now.plusSeconds(Dominion.config.getTpCoolDown())); Scheduler.runTaskLater(() -> { Location location = dominionDTO.getTpLocation(); + int center_x = (dominionDTO.getX1() + dominionDTO.getX2()) / 2; + int center_z = (dominionDTO.getZ1() + dominionDTO.getZ2()) / 2; + World world = Dominion.instance.getServer().getWorld(dominionDTO.getWorld()); if (location == null) { - int x = (dominionDTO.getX1() + dominionDTO.getX2()) / 2; - int z = (dominionDTO.getZ1() + dominionDTO.getZ2()) / 2; - World world = Dominion.instance.getServer().getWorld(dominionDTO.getWorld()); - location = new Location(world, x, player.getLocation().getY(), z); + location = new Location(world, center_x, player.getLocation().getY(), center_z); XLogger.warn("领地 %s 没有设置传送点,将尝试传送到中心点", dominionDTO.getName()); } else if (!isInDominion(dominionDTO, location)) { - int x = (dominionDTO.getX1() + dominionDTO.getX2()) / 2; - int z = (dominionDTO.getZ1() + dominionDTO.getZ2()) / 2; - World world = Dominion.instance.getServer().getWorld(dominionDTO.getWorld()); - location = new Location(world, x, player.getLocation().getY(), z); + location = new Location(world, center_x, player.getLocation().getY(), center_z); XLogger.warn("领地 %s 传送点不在领地内,将尝试传送到中心点", dominionDTO.getName()); } if (player.isOnline()) { @@ -432,8 +444,8 @@ public class DominionOperate { /** * 设置领地卫星地图地块颜色 * - * @param sender 命令发送者 - * @param args 命令参数 + * @param sender 命令发送者 + * @param args 命令参数 */ public static void setMapColor(CommandSender sender, String[] args) { Player player = playerOnly(sender);