Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import me.itsskeptical.displaytags.DisplayTags;
import me.itsskeptical.displaytags.nametags.Nametag;
import me.itsskeptical.displaytags.nametags.NametagManager;
import me.itsskeptical.displaytags.utils.PlayerUtils;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
Expand All @@ -19,6 +20,8 @@ public class PlayerListener implements Listener {
public void onPlayerLoad(PlayerClientLoadedWorldEvent event) {
Player player = event.getPlayer();
if (plugin.config().getNametagConfig().isEnabled()) {
if (PlayerUtils.isNPC(player)) return;

if (nametagManager.get(player) != null) {
nametagManager.remove(player);
}
Expand All @@ -31,14 +34,19 @@ public void onPlayerLoad(PlayerClientLoadedWorldEvent event) {
public void onPlayerQuit(PlayerQuitEvent event) {
if (plugin.config().getNametagConfig().isEnabled()) {
Player player = event.getPlayer();
if (PlayerUtils.isNPC(player)) return;

nametagManager.remove(player);
}
}

@EventHandler
public void onPlayerDeath(PlayerDeathEvent event) {
if (plugin.config().getNametagConfig().isEnabled()) {
Nametag nametag = nametagManager.get(event.getPlayer());
Player player = event.getPlayer();
if (PlayerUtils.isNPC(player)) return;

Nametag nametag = nametagManager.get(player);
if (nametag == null) return;

nametag.hideForAll();
Expand All @@ -48,7 +56,10 @@ public void onPlayerDeath(PlayerDeathEvent event) {
@EventHandler
public void onPlayerTeleport(PlayerTeleportEvent event) {
if (plugin.config().getNametagConfig().isEnabled()) {
Nametag nametag = nametagManager.get(event.getPlayer());
Player player = event.getPlayer();
if (PlayerUtils.isNPC(player)) return;

Nametag nametag = nametagManager.get(player);
if (nametag == null) return;

nametag.teleportForAll();
Expand All @@ -59,7 +70,10 @@ public void onPlayerTeleport(PlayerTeleportEvent event) {
@EventHandler
public void onPlayerWorldChange(PlayerChangedWorldEvent event) {
if (plugin.config().getNametagConfig().isEnabled()) {
Nametag nametag = nametagManager.get(event.getPlayer());
Player player = event.getPlayer();
if (PlayerUtils.isNPC(player)) return;

Nametag nametag = nametagManager.get(player);
if (nametag == null) return;

nametag.hideForAll();
Expand All @@ -70,11 +84,14 @@ public void onPlayerWorldChange(PlayerChangedWorldEvent event) {
@EventHandler
public void onPlayerGameModeChange(PlayerGameModeChangeEvent event) {
if (plugin.config().getNametagConfig().isEnabled()) {
Nametag nametag = nametagManager.get(event.getPlayer());
Player player = event.getPlayer();
if (PlayerUtils.isNPC(player)) return;

Nametag nametag = nametagManager.get(player);
if (nametag != null) {
if (event.getNewGameMode() == GameMode.SPECTATOR) {
nametag.hideForAll();
} else if (event.getPlayer().getPreviousGameMode() == GameMode.SPECTATOR) {
} else if (player.getPreviousGameMode() == GameMode.SPECTATOR) {
nametag.updateVisibilityForAll();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import me.itsskeptical.displaytags.config.NametagConfig;
import me.itsskeptical.displaytags.entities.ClientTextDisplay;
import me.itsskeptical.displaytags.utils.ComponentUtils;
import me.itsskeptical.displaytags.utils.PlayerUtils;
import me.itsskeptical.displaytags.utils.handlers.NametagHandler;
import me.itsskeptical.displaytags.utils.helpers.DependencyHelper;
import net.kyori.adventure.text.Component;
Expand Down Expand Up @@ -61,7 +62,7 @@ public Player getPlayer() {
}

public void hideForAll() {
for (Player viewer : Bukkit.getOnlinePlayers()) {
for (Player viewer : PlayerUtils.getOnlinePlayers()) {
this.hide(viewer);
}
}
Expand All @@ -75,7 +76,7 @@ public void updateVisibilityForAll() {
return viewer == null || !viewer.isOnline();
});

for (Player viewer : Bukkit.getOnlinePlayers()) {
for (Player viewer : PlayerUtils.getOnlinePlayers()) {
boolean shouldSee = shouldSee(viewer);
boolean isVisible = this.viewers.contains(viewer.getUniqueId());

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package me.itsskeptical.displaytags.nametags;

import me.itsskeptical.displaytags.utils.PlayerUtils;
import me.itsskeptical.displaytags.utils.handlers.NametagHandler;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

import java.util.Collection;
Expand Down Expand Up @@ -31,7 +31,7 @@ public void create(Player player) {
}

public void remove(Player player) {
for (Player viewer : Bukkit.getOnlinePlayers()) {
for (Player viewer : PlayerUtils.getOnlinePlayers()) {
NametagHandler.show(player, viewer);
}

Expand All @@ -43,7 +43,7 @@ public void remove(Player player) {
}

public void createAll() {
for (Player player : Bukkit.getOnlinePlayers()) {
for (Player player : PlayerUtils.getOnlinePlayers()) {
this.create(player);
}
}
Expand Down
18 changes: 18 additions & 0 deletions src/main/java/me/itsskeptical/displaytags/utils/PlayerUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package me.itsskeptical.displaytags.utils;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

import java.util.Collection;

public class PlayerUtils {
public static Collection<? extends Player> getOnlinePlayers() {
return Bukkit.getOnlinePlayers().stream()
.filter(player -> !isNPC(player))
.toList();
}

public static boolean isNPC(Player player) {
return player.hasMetadata("NPC");
}
}