diff --git a/pom.xml b/pom.xml index 1e7f84e..67a2e82 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.lunadeer Dominion - 1.4-beta + 1.4.4-beta jar Dominion diff --git a/src/main/java/cn/lunadeer/dominion/Dominion.java b/src/main/java/cn/lunadeer/dominion/Dominion.java index 897c7a9..dac534c 100644 --- a/src/main/java/cn/lunadeer/dominion/Dominion.java +++ b/src/main/java/cn/lunadeer/dominion/Dominion.java @@ -5,6 +5,7 @@ import cn.lunadeer.dominion.events.PlayerEvents; import cn.lunadeer.dominion.events.SelectPointEvents; import cn.lunadeer.dominion.utils.ConfigManager; import cn.lunadeer.dominion.utils.Database; +import cn.lunadeer.dominion.utils.Time; import cn.lunadeer.dominion.utils.XLogger; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -39,6 +40,8 @@ public final class Dominion extends JavaPlugin { XLogger.info(" | |__| | (_) | | | | | | | | | | | (_) | | | |"); XLogger.info(" |_____/ \\___/|_| |_| |_|_|_| |_|_|\\___/|_| |_|"); XLogger.info(" "); + + Time.runLater(this, BlueMapConnect::render, 20 * 60); } @Override diff --git a/src/main/java/cn/lunadeer/dominion/controllers/Apis.java b/src/main/java/cn/lunadeer/dominion/controllers/Apis.java index 85e1b2c..f18e0b2 100644 --- a/src/main/java/cn/lunadeer/dominion/controllers/Apis.java +++ b/src/main/java/cn/lunadeer/dominion/controllers/Apis.java @@ -68,9 +68,9 @@ public class Apis { return BlockFace.EAST; } } else if (pitch > 45) { - return BlockFace.UP; - } else { return BlockFace.DOWN; + } else { + return BlockFace.UP; } } } diff --git a/src/main/java/cn/lunadeer/dominion/utils/Time.java b/src/main/java/cn/lunadeer/dominion/utils/Time.java index ebbd0c1..5f60282 100644 --- a/src/main/java/cn/lunadeer/dominion/utils/Time.java +++ b/src/main/java/cn/lunadeer/dominion/utils/Time.java @@ -1,7 +1,11 @@ package cn.lunadeer.dominion.utils; +import org.bukkit.Bukkit; +import org.bukkit.plugin.Plugin; + import java.text.SimpleDateFormat; import java.util.Date; +import java.util.concurrent.TimeUnit; public class Time { @@ -9,4 +13,49 @@ public class Time { // yyyy-MM-dd HH:mm:ss return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); } + + /** + * 尝试获取folia的调度器 + * + * @return 是否成功 + */ + private static boolean tryFolia() { + try { + Bukkit.getAsyncScheduler(); + return true; + } catch (Throwable ignored) { + } + return false; + } + + private static Boolean IS_FOLIA = null; + + /** + * 判断是否是folia核心 + * + * @return 是否是folia核心 + */ + public static Boolean isFolia() { + if (IS_FOLIA == null) IS_FOLIA = tryFolia(); + return IS_FOLIA; + } + + /** + * 定时异步任务 + * + * @param plugin 插件 + * @param runnable 任务 + * @param ticks 间隔 + */ + public static void runAtFixedRateAsync(Plugin plugin, Runnable runnable, int ticks) { + if (isFolia()) + Bukkit.getAsyncScheduler().runAtFixedRate(plugin, (task) -> runnable.run(), ticks / 20, ticks / 20, TimeUnit.SECONDS); + else Bukkit.getScheduler().runTaskTimerAsynchronously(plugin, runnable, ticks, ticks); + } + + public static void runLater(Plugin plugin, Runnable runnable, int ticks) { + if (isFolia()) + Bukkit.getAsyncScheduler().runDelayed(plugin, (task) -> runnable.run(), ticks / 20, TimeUnit.SECONDS); + else Bukkit.getScheduler().runTaskLater(plugin, runnable, ticks); + } }