diff --git a/src/main/java/xyz/atnrch/nicko/appearance/AppearanceManager.java b/src/main/java/xyz/atnrch/nicko/appearance/AppearanceManager.java index f9bab11..185beae 100644 --- a/src/main/java/xyz/atnrch/nicko/appearance/AppearanceManager.java +++ b/src/main/java/xyz/atnrch/nicko/appearance/AppearanceManager.java @@ -58,7 +58,7 @@ public class AppearanceManager { updateMetadata(); updateTabList(gameProfile, displayName); respawnPlayer(); - updateOthers(); + updateForOthers(); } return result; } @@ -68,7 +68,10 @@ public class AppearanceManager { return optionalProfile.orElse(NickoProfile.EMPTY_PROFILE.clone()); } - public void updateOthers() { + public void updateForOthers() { + final NickoProfile nickoProfile = getNickoProfile(); + if (!nickoProfile.hasData()) return; + final WrapperPlayServerEntityDestroy destroy = new WrapperPlayServerEntityDestroy(); final WrapperPlayServerSpawnEntity spawn = new WrapperPlayServerSpawnEntity(); destroy.setEntityIds(IntList.of(player.getEntityId())); diff --git a/src/main/java/xyz/atnrch/nicko/event/PlayerJoinListener.java b/src/main/java/xyz/atnrch/nicko/event/PlayerJoinListener.java index cfd9523..4038733 100644 --- a/src/main/java/xyz/atnrch/nicko/event/PlayerJoinListener.java +++ b/src/main/java/xyz/atnrch/nicko/event/PlayerJoinListener.java @@ -3,6 +3,7 @@ package xyz.atnrch.nicko.event; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import xyz.atnrch.nicko.NickoBukkit; @@ -17,7 +18,7 @@ import xyz.atnrch.nicko.storage.name.PlayerNameStore; import java.util.Optional; public class PlayerJoinListener implements Listener { - @EventHandler + @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onPlayerJoin(PlayerJoinEvent event) { final Player player = event.getPlayer(); final NickoBukkit instance = NickoBukkit.getInstance(); @@ -41,6 +42,11 @@ public class PlayerJoinListener implements Listener { } } }); + + for (Player online : Bukkit.getOnlinePlayers()) { + final AppearanceManager appearanceManager = new AppearanceManager(online); + appearanceManager.updateForOthers(); + } }, 20L); } }