NameTagManager.java (1648B)
1 package me.night.nullvalkyrie.ui.player; 2 3 import me.night.nullvalkyrie.database.RankDataManager; 4 import me.night.nullvalkyrie.util.Rank; 5 import org.bukkit.Bukkit; 6 import org.bukkit.entity.Player; 7 import org.bukkit.scoreboard.*; 8 9 import java.util.Objects; 10 11 public class NameTagManager { 12 public void setNametags(Player player) { 13 Scoreboard newScoreboard = Bukkit.getScoreboardManager().getNewScoreboard(); 14 Objective obj = newScoreboard.registerNewObjective("TabList", Criteria.DUMMY, "Test"); 15 obj.setDisplaySlot(DisplaySlot.PLAYER_LIST); 16 player.setScoreboard(newScoreboard); 17 for (Rank rank : Rank.values()) { 18 Team team = player.getScoreboard().registerNewTeam(rank.name()); 19 team.setPrefix(rank.getDisplay() + " "); 20 } 21 for (Player target : Bukkit.getOnlinePlayers()) { 22 if (player.getUniqueId() != target.getUniqueId()) { 23 Rank rank = RankDataManager.getRank(target.getUniqueId()); 24 if (rank != null) player.getScoreboard().getTeam(rank.name()).addEntry(target.getName()); 25 } 26 } 27 } 28 29 public void newTag(Player player) { 30 Rank rank = RankDataManager.getRank(player.getUniqueId()); 31 for (Player target : Bukkit.getOnlinePlayers()) { 32 target.getScoreboard().getTeam(Objects.requireNonNullElse(rank, Rank.ROOKIE).name()).addEntry(player.getName()); 33 } 34 } 35 36 public void removeTag(Player player) { 37 for (Player target : Bukkit.getOnlinePlayers()) { 38 target.getScoreboard().getEntryTeam(player.getName()).removeEntry(player.getName()); 39 } 40 } 41 }