NullValkyrie

Minecraft 1.19 multipurpose plugin for spigot servers with a lot of features where most modern servers have.
git clone https://codeberg.org/night0721/NullValkyrie
Log | Files | Refs | README | LICENSE

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 }