From 4bf2d9b479d828210f6fd5522b04969400d729ae Mon Sep 17 00:00:00 2001 From: ceze88 Date: Fri, 7 Apr 2023 22:03:04 +0200 Subject: [PATCH] Update holograms on chunk load to prevent missing holograms --- .../ultimatestacker/listeners/BlockListeners.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/songoda/ultimatestacker/listeners/BlockListeners.java b/src/main/java/com/songoda/ultimatestacker/listeners/BlockListeners.java index 5489978..3c6722a 100644 --- a/src/main/java/com/songoda/ultimatestacker/listeners/BlockListeners.java +++ b/src/main/java/com/songoda/ultimatestacker/listeners/BlockListeners.java @@ -16,6 +16,7 @@ import com.songoda.ultimatestacker.utils.Methods; import io.lumine.mythic.bukkit.utils.menu.ClickAction; import org.apache.commons.lang.math.NumberUtils; import org.bukkit.Bukkit; +import org.bukkit.Chunk; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.block.Block; @@ -31,6 +32,7 @@ import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.world.ChunkLoadEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BlockStateMeta; @@ -45,6 +47,14 @@ public class BlockListeners implements Listener { this.plugin = plugin; } + @EventHandler + public void onChunkLoad(ChunkLoadEvent event) { + if (!Settings.STACK_BLOCKS.getBoolean()) return; + Chunk chunk = event.getChunk(); + BlockStackManager blockStackManager = plugin.getBlockStackManager(); + blockStackManager.getStacks().stream().filter(stack -> stack.getLocation().getChunk().equals(chunk)).forEach(plugin::updateHologram); + } + @EventHandler(priority = EventPriority.HIGHEST) public void onBlockInteract(PlayerInteractEvent event) { if (event.useInteractedBlock() == Event.Result.DENY) return;