From 576893206d06ff67907a57abbde9b0244ed0ea64 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 3 Jun 2025 10:10:07 +0200 Subject: [PATCH] fancyholograms-v2: Only register listener for PlayerClientLoadedWorldEvent in 1.21.5 and 1.21.4 --- .../oliver/fancyholograms/FancyHolograms.java | 8 +++---- .../listeners/PlayerListener.java | 23 ++++++++----------- .../listeners/PlayerLoadedListener.java | 20 ++++++++++++++++ 3 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/listeners/PlayerLoadedListener.java diff --git a/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/FancyHolograms.java b/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/FancyHolograms.java index 0a24627f..e9fbed89 100644 --- a/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/FancyHolograms.java +++ b/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/FancyHolograms.java @@ -18,10 +18,7 @@ import de.oliver.fancyholograms.commands.FancyHologramsCMD; import de.oliver.fancyholograms.commands.FancyHologramsTestCMD; import de.oliver.fancyholograms.commands.HologramCMD; import de.oliver.fancyholograms.hologram.version.*; -import de.oliver.fancyholograms.listeners.BedrockPlayerListener; -import de.oliver.fancyholograms.listeners.NpcListener; -import de.oliver.fancyholograms.listeners.PlayerListener; -import de.oliver.fancyholograms.listeners.WorldListener; +import de.oliver.fancyholograms.listeners.*; import de.oliver.fancyholograms.storage.FlatFileHologramStorage; import de.oliver.fancyholograms.storage.converter.FHConversionRegistry; import de.oliver.fancyholograms.util.PluginUtils; @@ -289,6 +286,9 @@ public final class FancyHolograms extends JavaPlugin implements FancyHologramsPl private void registerListeners() { getServer().getPluginManager().registerEvents(new PlayerListener(this), this); getServer().getPluginManager().registerEvents(new WorldListener(), this); + if (Bukkit.getMinecraftVersion().equals("1.21.4") || Bukkit.getMinecraftVersion().equals("1.21.5")) { + getServer().getPluginManager().registerEvents(new PlayerLoadedListener(), this); + } if (PluginUtils.isFancyNpcsEnabled()) { getServer().getPluginManager().registerEvents(new NpcListener(this), this); 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 6f2760e1..5da3bbc6 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 @@ -2,15 +2,11 @@ package de.oliver.fancyholograms.listeners; import de.oliver.fancyholograms.FancyHolograms; import de.oliver.fancyholograms.api.hologram.Hologram; -import io.papermc.paper.event.player.PlayerClientLoadedWorldEvent; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerResourcePackStatusEvent; +import org.bukkit.event.player.*; import org.bukkit.event.player.PlayerResourcePackStatusEvent.Status; -import org.bukkit.event.player.PlayerTeleportEvent; import org.jetbrains.annotations.NotNull; import java.util.*; @@ -37,22 +33,23 @@ public final class PlayerListener implements Listener { } } - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerLoaded(@NotNull final PlayerClientLoadedWorldEvent event) { - for (final Hologram hologram : this.plugin.getHologramsManager().getHolograms()) { - hologram.forceUpdateShownStateFor(event.getPlayer()); - } - } - @EventHandler(priority = EventPriority.MONITOR) public void onQuit(@NotNull final PlayerQuitEvent event) { FancyHolograms.get().getHologramThread().submit(() -> { for (final var hologram : this.plugin.getHologramsManager().getHolograms()) { - hologram.hideHologram(event.getPlayer()); + hologram.forceHideHologram(event.getPlayer()); } }); } + @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()); + } + } + @EventHandler(priority = EventPriority.MONITOR) public void onTeleport(@NotNull final PlayerTeleportEvent event) { for (final Hologram hologram : this.plugin.getHologramsManager().getHolograms()) { diff --git a/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/listeners/PlayerLoadedListener.java b/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/listeners/PlayerLoadedListener.java new file mode 100644 index 00000000..876a9b0d --- /dev/null +++ b/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/listeners/PlayerLoadedListener.java @@ -0,0 +1,20 @@ +package de.oliver.fancyholograms.listeners; + +import de.oliver.fancyholograms.FancyHolograms; +import de.oliver.fancyholograms.api.hologram.Hologram; +import io.papermc.paper.event.player.PlayerClientLoadedWorldEvent; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; + +public class PlayerLoadedListener implements Listener { + + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerLoaded(@NotNull final PlayerClientLoadedWorldEvent event) { + for (final Hologram hologram : FancyHolograms.get().getHologramsManager().getHolograms()) { + hologram.forceUpdateShownStateFor(event.getPlayer()); + } + } + +}