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 }