fancyholograms-v2: Only register listener for PlayerClientLoadedWorldEvent in 1.21.5 and 1.21.4

This commit is contained in:
Oliver
2025-06-03 10:10:07 +02:00
parent b02ec7c95f
commit 576893206d
3 changed files with 34 additions and 17 deletions

View File

@@ -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);

View File

@@ -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()) {

View File

@@ -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());
}
}
}