From d38ce8f24846da4b01c66084c85ff741d1152e53 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 6 Aug 2025 21:31:45 +0200 Subject: [PATCH] fancyholograms: Optimize hologram updates by submitting tasks to the hologram thread on player events --- .../listeners/PlayerListener.java | 34 +++++++++++------- .../listeners/PlayerListener.java | 36 +++++++++++-------- plugins/fancynpcs/VERSION | 2 +- 3 files changed, 44 insertions(+), 28 deletions(-) diff --git a/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/listeners/PlayerListener.java b/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/listeners/PlayerListener.java index 5da3bbc6..34c89827 100644 --- a/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/listeners/PlayerListener.java +++ b/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/listeners/PlayerListener.java @@ -44,24 +44,30 @@ public final class PlayerListener implements Listener { @EventHandler(priority = EventPriority.MONITOR) public void onJoin(@NotNull final PlayerJoinEvent event) { - for (final var hologram : this.plugin.getHologramsManager().getHolograms()) { - hologram.forceHideHologram(event.getPlayer()); - hologram.forceUpdateShownStateFor(event.getPlayer()); - } + FancyHolograms.get().getHologramThread().submit(() -> { + for (final var hologram : this.plugin.getHologramsManager().getHolograms()) { + hologram.forceHideHologram(event.getPlayer()); + hologram.forceUpdateShownStateFor(event.getPlayer()); + } + }); } @EventHandler(priority = EventPriority.MONITOR) public void onTeleport(@NotNull final PlayerTeleportEvent event) { - for (final Hologram hologram : this.plugin.getHologramsManager().getHolograms()) { - hologram.forceUpdateShownStateFor(event.getPlayer()); - } + FancyHolograms.get().getHologramThread().submit(() -> { + for (final Hologram hologram : this.plugin.getHologramsManager().getHolograms()) { + hologram.forceUpdateShownStateFor(event.getPlayer()); + } + }); } @EventHandler(priority = EventPriority.MONITOR) public void onWorldChange(@NotNull final PlayerChangedWorldEvent event) { - for (final Hologram hologram : this.plugin.getHologramsManager().getHolograms()) { - hologram.forceUpdateShownStateFor(event.getPlayer()); - } + FancyHolograms.get().getHologramThread().submit(() -> { + for (final Hologram hologram : this.plugin.getHologramsManager().getHolograms()) { + hologram.forceUpdateShownStateFor(event.getPlayer()); + } + }); } @EventHandler(priority = EventPriority.MONITOR) @@ -83,9 +89,11 @@ public final class PlayerListener implements Listener { // Removing player from the map, as they're no longer needed here. loadingResourcePacks.remove(playerUniqueId); // Refreshing holograms as to make sure custom textures are loaded. - for (final Hologram hologram : this.plugin.getHologramsManager().getHolograms()) { - hologram.refreshHologram(event.getPlayer()); - } + FancyHolograms.get().getHologramThread().submit(() -> { + for (final Hologram hologram : this.plugin.getHologramsManager().getHolograms()) { + hologram.refreshHologram(event.getPlayer()); + } + }); } } } diff --git a/plugins/fancyholograms/src/main/java/com/fancyinnovations/fancyholograms/listeners/PlayerListener.java b/plugins/fancyholograms/src/main/java/com/fancyinnovations/fancyholograms/listeners/PlayerListener.java index e55c110c..4dae1cf0 100644 --- a/plugins/fancyholograms/src/main/java/com/fancyinnovations/fancyholograms/listeners/PlayerListener.java +++ b/plugins/fancyholograms/src/main/java/com/fancyinnovations/fancyholograms/listeners/PlayerListener.java @@ -35,10 +35,12 @@ public final class PlayerListener implements Listener { @EventHandler(priority = EventPriority.MONITOR) public void onJoin(@NotNull final PlayerJoinEvent event) { - for (final var hologram : this.plugin.getRegistry().getAll()) { - hologram.removeViewer(event.getPlayer().getUniqueId()); - FancyHologramsPlugin.get().getController().refreshHologram(hologram, event.getPlayer()); - } + FancyHologramsPlugin.get().getHologramThread().submit(() -> { + for (final var hologram : this.plugin.getRegistry().getAll()) { + hologram.removeViewer(event.getPlayer().getUniqueId()); + FancyHologramsPlugin.get().getController().refreshHologram(hologram, event.getPlayer()); + } + }); if (!this.plugin.getHologramConfiguration().areVersionNotificationsMuted() && event.getPlayer().hasPermission("fancyholograms.admin")) { FancyHologramsPlugin.get().getHologramThread().submit(() -> FancyHologramsPlugin.get().getVersionConfig().checkVersionAndDisplay(event.getPlayer(), true)); @@ -57,17 +59,21 @@ public final class PlayerListener implements Listener { @EventHandler(priority = EventPriority.MONITOR) public void onTeleport(@NotNull final PlayerTeleportEvent event) { - for (final Hologram hologram : this.plugin.getRegistry().getAll()) { - FancyHologramsPlugin.get().getController().refreshHologram(hologram, event.getPlayer()); - } + FancyHologramsPlugin.get().getHologramThread().submit(() -> { + for (final Hologram hologram : this.plugin.getRegistry().getAll()) { + FancyHologramsPlugin.get().getController().refreshHologram(hologram, event.getPlayer()); + } + }); } @EventHandler(priority = EventPriority.MONITOR) public void onWorldChange(@NotNull final PlayerChangedWorldEvent event) { - for (final Hologram hologram : this.plugin.getRegistry().getAll()) { - hologram.removeViewer(event.getPlayer().getUniqueId()); - FancyHologramsPlugin.get().getController().refreshHologram(hologram, event.getPlayer()); - } + FancyHologramsPlugin.get().getHologramThread().submit(() -> { + for (final Hologram hologram : this.plugin.getRegistry().getAll()) { + hologram.removeViewer(event.getPlayer().getUniqueId()); + FancyHologramsPlugin.get().getController().refreshHologram(hologram, event.getPlayer()); + } + }); } @EventHandler(priority = EventPriority.MONITOR) @@ -89,9 +95,11 @@ public final class PlayerListener implements Listener { // Removing player from the map, as they're no longer needed here. loadingResourcePacks.remove(playerUniqueId); // Refreshing holograms as to make sure custom textures are loaded. - for (final Hologram hologram : this.plugin.getRegistry().getAll()) { - FancyHologramsPlugin.get().getController().refreshHologram(hologram, event.getPlayer()); - } + FancyHologramsPlugin.get().getHologramThread().submit(() -> { + for (final Hologram hologram : this.plugin.getRegistry().getAll()) { + FancyHologramsPlugin.get().getController().refreshHologram(hologram, event.getPlayer()); + } + }); } } } diff --git a/plugins/fancynpcs/VERSION b/plugins/fancynpcs/VERSION index 3122e738..3ca3a092 100644 --- a/plugins/fancynpcs/VERSION +++ b/plugins/fancynpcs/VERSION @@ -1 +1 @@ -2.7.0.288 \ No newline at end of file +2.7.0.289 \ No newline at end of file