From e3e25227f69381a94f7c043d98623d9942b137fa Mon Sep 17 00:00:00 2001 From: MidnightTale Date: Tue, 25 Apr 2023 01:18:05 +0700 Subject: [PATCH] GlobalRegionScheduler --- .../java/xyz/hynse/foliaflow/FoliaFlow.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java b/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java index 98b708a..507ab85 100644 --- a/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java +++ b/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java @@ -7,6 +7,7 @@ import io.papermc.paper.threadedregions.scheduler.ScheduledTask; import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.data.type.Slab; +import org.bukkit.command.CommandException; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.FallingBlock; @@ -79,16 +80,30 @@ public class FoliaFlow extends JavaPlugin implements Listener { }), 0L, 1L, TimeUnit.MILLISECONDS); } catch (UnsupportedOperationException ignored) { } - getServer().dispatchCommand(Bukkit.getConsoleSender(), "summon minecraft:block_display 100.0005 48 -0.0005 {block_state:{Name:\"minecraft:obsidian\"},Tags:[\"FoliaFlow_FakeBlock\"]}"); - getServer().getLogger().info("Removed Fake Block Display"); + GlobalRegionScheduler scheduler = getServer().getGlobalRegionScheduler(); + scheduler.execute(this, () -> { + try { + getServer().dispatchCommand(Bukkit.getConsoleSender(), "summon minecraft:block_display 100.0005 48 -0.0005 {block_state:{Name:\"minecraft:obsidian\"},Tags:[\"FoliaFlow_FakeBlock\"]}"); + getServer().getLogger().info("Installed fake block display"); + } catch (CommandException e) { + getLogger().warning("Error while installing Fake Block Display: " + e.getMessage()); + } + }); getServer().getPluginManager().registerEvents(this, this); } @Override public void onDisable() { - getServer().dispatchCommand(getServer().getConsoleSender(), "kill @e[tag=FoliaFlow_FakeBlock]"); - getServer().getLogger().info("Removed Fake Block Display"); + GlobalRegionScheduler scheduler = getServer().getGlobalRegionScheduler(); + scheduler.execute(this, () -> { + try { + getServer().dispatchCommand(getServer().getConsoleSender(), "kill @e[tag=FoliaFlow_FakeBlock]"); + getLogger().info("Removed Fake Block Display"); + } catch (CommandException e) { + getLogger().warning("Error while removing Fake Block Display: " + e.getMessage()); + } + }); task.cancel(); blockktask.cancel(); super.onDisable();