diff --git a/bukkit/compatibility/build.gradle.kts b/bukkit/compatibility/build.gradle.kts index 2690442cf..b0cd5fa25 100644 --- a/bukkit/compatibility/build.gradle.kts +++ b/bukkit/compatibility/build.gradle.kts @@ -18,6 +18,8 @@ dependencies { compileOnly(project(":bukkit")) compileOnly(project(":bukkit:compatibility:legacy")) compileOnly("net.momirealms:sparrow-nbt:${rootProject.properties["sparrow_nbt_version"]}") + // NMS + compileOnly("net.momirealms:craft-engine-nms-helper:${rootProject.properties["nms_helper_version"]}") // Platform compileOnly("io.papermc.paper:paper-api:${rootProject.properties["paper_version"]}-R0.1-SNAPSHOT") // NeigeItems diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java index 17212a2a6..99d0eb014 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java @@ -19,6 +19,7 @@ import net.momirealms.craftengine.bukkit.compatibility.viaversion.ViaVersionUtil import net.momirealms.craftengine.bukkit.compatibility.worldedit.WorldEditBlockRegister; import net.momirealms.craftengine.bukkit.font.BukkitFontManager; import net.momirealms.craftengine.bukkit.item.BukkitItemManager; +import net.momirealms.craftengine.bukkit.nms.FastNMS; import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; import net.momirealms.craftengine.core.entity.furniture.AbstractExternalModel; import net.momirealms.craftengine.core.entity.player.Player; @@ -27,6 +28,8 @@ import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.craftengine.core.world.WorldManager; import org.bukkit.Bukkit; +import org.bukkit.plugin.Plugin; +import org.bukkit.scheduler.BukkitTask; import java.util.UUID; @@ -59,6 +62,19 @@ public class BukkitCompatibilityManager implements CompatibilityManager { ExprBlockCustomBlockID.register(); ExprBlockCustomBlockState.register(); logHook("Skript"); + Plugin skriptPlugin = getPlugin("Skript"); + for (BukkitTask task : Bukkit.getScheduler().getPendingTasks()) { + if (task.getOwner() == skriptPlugin) { + task.cancel(); + if (VersionHelper.isFolia()) { + Bukkit.getGlobalRegionScheduler().run(skriptPlugin, (t) -> { + FastNMS.INSTANCE.getBukkitTaskRunnable(task).run(); + }); + } else { + Bukkit.getScheduler().runTask(skriptPlugin, FastNMS.INSTANCE.getBukkitTaskRunnable(task)); + } + } + } } } @@ -161,6 +177,10 @@ public class BukkitCompatibilityManager implements CompatibilityManager { } } + private Plugin getPlugin(String name) { + return Bukkit.getPluginManager().getPlugin(name); + } + @Override public boolean hasPlaceholderAPI() { return this.hasPlaceholderAPI; diff --git a/gradle.properties b/gradle.properties index d33f23590..4e5adffd8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx1G # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=0.0.51-beta.1 +project_version=0.0.51-beta.2 config_version=30 lang_version=7 project_group=net.momirealms @@ -50,7 +50,7 @@ byte_buddy_version=1.17.5 ahocorasick_version=0.6.3 snake_yaml_version=2.4 anti_grief_version=0.15 -nms_helper_version=0.61.8 +nms_helper_version=0.61.9 reactive_streams_version=1.0.4 amazon_awssdk_version=2.31.23 amazon_awssdk_eventstream_version=1.0.1