From 027e975a98d3ecef0d4cc31675cd036aae3ca9ff Mon Sep 17 00:00:00 2001 From: MidnightTale Date: Tue, 25 Apr 2023 00:04:17 +0700 Subject: [PATCH] fix blockdisplay --- .../java/xyz/hynse/foliaflow/FoliaFlow.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java b/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java index 1559a65..7074242 100644 --- a/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java +++ b/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java @@ -36,7 +36,7 @@ public class FoliaFlow extends JavaPlugin implements Listener { private final Map velocitiesMap = new HashMap<>(); private ScheduledTask task; private ScheduledTask blockktask; - private boolean blockCreated = false; + private BlockDisplay display; @Override public void onEnable() { super.onEnable(); @@ -81,22 +81,24 @@ public class FoliaFlow extends JavaPlugin implements Listener { } catch (UnsupportedOperationException ignored) { } - Location location = new Location(Bukkit.getWorld("world_the_end"), 100, 48, 0); - if (!blockCreated) { - World world = location.getWorld(); - if (world != null) { - Block block = world.getBlockAt(location); - BlockData blockData = block.getBlockData(); - BlockDisplay blockDisplay = (BlockDisplay) world.spawnEntity(location, EntityType.BLOCK_DISPLAY); - blockDisplay.setBlock(blockData); - blockCreated = true; - } - } + Location loc = new Location(Bukkit.getWorld("world_the_end"), 100, 48, 0); + BlockData blockData = Material.OBSIDIAN.createBlockData(); + display = Objects.requireNonNull(Bukkit.getWorld("world_the_end")).spawn(loc, BlockDisplay.class); + display.setBlock(blockData); + + getServer().getPluginManager().registerEvents(this, this); } @Override public void onDisable() { + if (display != null) { + display.remove(); + display = null; + } + for (Entity entity : Objects.requireNonNull(Bukkit.getWorld("world_the_end")).getEntitiesByClass(BlockDisplay.class)) { + entity.remove(); + } task.cancel(); blockktask.cancel(); super.onDisable();