fancyholograms: Optimize hologram updates by submitting tasks to the hologram thread on player events

This commit is contained in:
Oliver
2025-08-06 21:31:45 +02:00
parent c391881bfd
commit d38ce8f248
3 changed files with 44 additions and 28 deletions

View File

@@ -44,24 +44,30 @@ public final class PlayerListener implements Listener {
@EventHandler(priority = EventPriority.MONITOR)
public void onJoin(@NotNull final PlayerJoinEvent event) {
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) {
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) {
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.
FancyHolograms.get().getHologramThread().submit(() -> {
for (final Hologram hologram : this.plugin.getHologramsManager().getHolograms()) {
hologram.refreshHologram(event.getPlayer());
}
});
}
}
}

View File

@@ -35,10 +35,12 @@ public final class PlayerListener implements Listener {
@EventHandler(priority = EventPriority.MONITOR)
public void onJoin(@NotNull final PlayerJoinEvent event) {
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) {
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) {
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.
FancyHologramsPlugin.get().getHologramThread().submit(() -> {
for (final Hologram hologram : this.plugin.getRegistry().getAll()) {
FancyHologramsPlugin.get().getController().refreshHologram(hologram, event.getPlayer());
}
});
}
}
}

View File

@@ -1 +1 @@
2.7.0.288
2.7.0.289