From 64ca4849f921a49e8c782a0f22f71c54c01d6d39 Mon Sep 17 00:00:00 2001 From: Oak <55620516+OakLoaf@users.noreply.github.com> Date: Mon, 5 Aug 2024 20:23:56 +0100 Subject: [PATCH] Seperated text update interval refresh into separate more frequent schedule (#133) --- .../fancyholograms/HologramManagerImpl.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/oliver/fancyholograms/HologramManagerImpl.java b/src/main/java/de/oliver/fancyholograms/HologramManagerImpl.java index 354525e8..5a4c3a13 100644 --- a/src/main/java/de/oliver/fancyholograms/HologramManagerImpl.java +++ b/src/main/java/de/oliver/fancyholograms/HologramManagerImpl.java @@ -204,24 +204,32 @@ void initializeTasks() { if (data instanceof TextHologramData) { updateTimes.put(hologram.getData().getName(), time); } - } else if (data instanceof TextHologramData textData) { + } + } + }, 50, 1000, TimeUnit.MILLISECONDS); + + hologramThread.scheduleAtFixedRate(() -> { + final var time = System.currentTimeMillis(); + + for (final var hologram : getHolograms()) { + if (hologram.getData() instanceof TextHologramData textData) { final var interval = textData.getTextUpdateInterval(); if (interval < 1) { continue; // doesn't update } - final var lastUpdate = updateTimes.asMap().get(data.getName()); + final var lastUpdate = updateTimes.asMap().get(textData.getName()); if (lastUpdate != null && time < (lastUpdate + interval)) { continue; } if (lastUpdate == null || time > (lastUpdate + interval)) { hologram.refreshForViewersInWorld(); - updateTimes.put(data.getName(), time); + updateTimes.put(textData.getName(), time); } } } - }, 50, 1000, TimeUnit.MILLISECONDS); + }, 50, 50, TimeUnit.MILLISECONDS); } /**