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

SideBarManager.java (4609B)


      1 package me.night.nullvalkyrie.ui.player;
      2 
      3 import me.night.nullvalkyrie.NullValkyrie;
      4 import me.night.nullvalkyrie.database.UserDataManager;
      5 import me.night.nullvalkyrie.util.Util;
      6 import org.bukkit.Bukkit;
      7 import org.bukkit.ChatColor;
      8 import org.bukkit.entity.Player;
      9 import org.bukkit.scoreboard.*;
     10 
     11 import java.util.UUID;
     12 
     13 @SuppressWarnings("ConstantConditions")
     14 public class SideBarManager {
     15     private int taskID;
     16     public AnimatedSideBar board = null;
     17 
     18     public void setSideBar(Player player) {
     19         Scoreboard board = player.getScoreboard();
     20         Objective obj;
     21         if (board.getObjective("Vanadium") != null) obj = board.getObjective("Vanadium");
     22         else
     23             obj = board.registerNewObjective("Vanadium", Criteria.DUMMY, ChatColor.AQUA.toString() + ChatColor.BOLD + ">> Vanadium <<");
     24         obj.setDisplaySlot(DisplaySlot.SIDEBAR);
     25         Score hypens = obj.getScore(ChatColor.GOLD + "=-=-=-=-=-=-=-=");
     26         hypens.setScore(9);
     27         Score name = obj.getScore(ChatColor.BLUE + "Player Name: ");
     28         name.setScore(8);
     29         Score name2 = obj.getScore(ChatColor.WHITE + player.getName());
     30         name2.setScore(7);
     31         Score space1 = obj.getScore("  ");
     32         space1.setScore(6);
     33         Score players = obj.getScore(ChatColor.LIGHT_PURPLE + "Players Online:");
     34         players.setScore(5);
     35         Score playercount = obj.getScore(ChatColor.YELLOW.toString() + Bukkit.getServer().getOnlinePlayers().size());
     36         playercount.setScore(4);
     37         Score space2 = obj.getScore(" ");
     38         space2.setScore(2);
     39         Score website = obj.getScore(ChatColor.YELLOW + "cath.js.org");
     40         website.setScore(1);
     41         Team bankTeam;
     42         if (board.getTeam("Bank") != null) bankTeam = board.getTeam("Bank");
     43         else bankTeam = board.registerNewTeam("Bank");
     44         bankTeam.addEntry(ChatColor.BOLD.toString());
     45         bankTeam.setPrefix(ChatColor.BLUE + "Bank: ");
     46         bankTeam.setSuffix(ChatColor.YELLOW + new UserDataManager().getUser(player.getUniqueId().toString()).get("Bank").toString());
     47         obj.getScore(ChatColor.BOLD.toString()).setScore(3);
     48         player.setScoreboard(board);
     49     }
     50 
     51     public void start(Player player) {
     52         board = new AnimatedSideBar(player.getUniqueId());
     53         taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(NullValkyrie.getPlugin(NullValkyrie.class), new Runnable() {
     54             int count = 0;
     55 
     56             public void animate(String str) {
     57                 Scoreboard board = player.getScoreboard();
     58                 Objective objective;
     59                 if (board.getObjective("Vanadium") != null) objective = board.getObjective("Vanadium");
     60                 else
     61                     objective = board.registerNewObjective("Vanadium", Criteria.DUMMY, ChatColor.AQUA.toString() + ChatColor.BOLD + ">> Vanadium <<");
     62                 objective.setDisplaySlot(DisplaySlot.SIDEBAR);
     63                 objective.setDisplayName(Util.color(str));
     64             }
     65 
     66             @Override
     67             public void run() {
     68                 if (!board.hasID()) board.setID(taskID);
     69                 if (count == 13) count = 0;
     70                 switch (count) {
     71                     case 0 -> animate("&1&l>> &e&lVanadium&1&l <<");
     72                     case 1 -> animate("&b&l>&1&l> &e&lVanadium &1&l<<");
     73                     case 2 -> animate("&1&l>&b&l> &e&lVanadium &1&l<<");
     74                     case 3 -> animate("&1&l>> &b&lV&e&lanadium&1&l <<");
     75                     case 4 -> animate("&1&l>> &e&lV&b&la&e&lnadium&1&l <<");
     76                     case 5 -> animate("&1&l>> &e&lVa&b&ln&e&ladium&1&l <<");
     77                     case 6 -> animate("&1&l>> &e&lVan&b&la&e&ldium&1&l <<");
     78                     case 7 -> animate("&1&l>> &e&lVana&b&ld&e&lium&1&l <<");
     79                     case 8 -> animate("&1&l>> &e&lVanad&b&li&e&lum&1&l <<");
     80                     case 9 -> animate("&1&l>> &e&lVanadi&b&lu&e&lm&1&l <<");
     81                     case 10 -> animate("&1&l>> &e&lVanadiu&b&lm&1&l <<");
     82                     case 11 -> animate("&1&l>> &e&lVanadium &b&l<&1&l<");
     83                     case 12 -> {
     84                         animate("&1&l>> &e&lVanadium &1&l<&b&l<");
     85                         setSideBar(player);
     86                     }
     87                 }
     88                 count++;
     89             }
     90         }, 0, 10);
     91     }
     92 
     93     public void addBank(String uuid, Integer amount) {
     94         UUID uid = UUID.fromString(uuid);
     95         Bukkit.getPlayer(uid).getScoreboard().getTeam("Bank").setSuffix(ChatColor.YELLOW.toString() + new UserDataManager().getUser(uuid).get("Bank") + ChatColor.WHITE + "+(" + amount + ")");
     96     }
     97 }