commit fabff20494c6f2bdf874aaa50301f94c97c7de48
parent b761af24ce613d4f89c63600cb6c009179be49f9
Author: NK <[email protected]>
Date: Wed, 16 Nov 2022 19:24:55 +0000
AnimatedSideBar
Diffstat:
3 files changed, 115 insertions(+), 6 deletions(-)
diff --git a/src/main/java/me/night/nullvalkyrie/rank/AnimatedSideBar.java b/src/main/java/me/night/nullvalkyrie/rank/AnimatedSideBar.java
@@ -0,0 +1,30 @@
+package me.night.nullvalkyrie.rank;
+
+import org.bukkit.Bukkit;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+public class AnimatedSideBar {
+ private static Map<UUID, Integer> Tasks = new HashMap<>();
+ private final UUID uuid;
+
+ public AnimatedSideBar(UUID uuid) {
+ this.uuid = uuid;
+ }
+ public void setID(int id) {
+ Tasks.put(uuid, id);
+ }
+ public int getID() {
+ return Tasks.get(uuid);
+ }
+ public boolean hasID() {
+ if (Tasks.containsKey(uuid))
+ return true;
+ return false;
+ }
+ public void stop() {
+ Bukkit.getScheduler().cancelTask(Tasks.get(uuid));
+ }
+}
diff --git a/src/main/java/me/night/nullvalkyrie/rank/ScoreboardListener.java b/src/main/java/me/night/nullvalkyrie/rank/ScoreboardListener.java
@@ -22,7 +22,7 @@ public class ScoreboardListener implements Listener {
public ScoreboardListener(Main main) {
nameTagManager = new NameTagManager(main);
rankManager = new RankManager(main);
- sideBarManager = new SideBarManager();
+ sideBarManager = new SideBarManager(main);
belowNameManager = new BelowNameManager();
}
@@ -38,6 +38,7 @@ public class ScoreboardListener implements Listener {
nameTagManager.setNametags(player);
nameTagManager.newTag(player);
sideBarManager.setSideBar(player);
+ sideBarManager.start(player);
belowNameManager.setBelowName(player);
e.setJoinMessage(rankManager.getRank(e.getPlayer().getUniqueId()).getDisplay() + " " + e.getPlayer().getName() + ChatColor.WHITE + " joined the server!");
}
@@ -47,6 +48,10 @@ public class ScoreboardListener implements Listener {
e.setQuitMessage(ChatColor.RED + "bozo " + e.getPlayer().getName() + " has left.");
nameTagManager.removeTag(e.getPlayer());
e.getPlayer().setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
+ AnimatedSideBar board = new AnimatedSideBar(e.getPlayer().getUniqueId());
+ if(board.hasID()) {
+ board.stop();
+ }
}
@EventHandler
diff --git a/src/main/java/me/night/nullvalkyrie/rank/SideBarManager.java b/src/main/java/me/night/nullvalkyrie/rank/SideBarManager.java
@@ -1,5 +1,6 @@
package me.night.nullvalkyrie.rank;
+import me.night.nullvalkyrie.Main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
@@ -11,12 +12,26 @@ import java.util.UUID;
public class SideBarManager {
private final HashMap<UUID, Integer> deaths = new HashMap<>();
+ private int taskID;
+ private Main main;
+
+ public SideBarManager(Main main) {
+ this.main = main;
+ }
+
@SuppressWarnings("deprecation")
public void setSideBar(Player player) {
Scoreboard board = player.getScoreboard();
- Objective obj = board.registerNewObjective("Pluto", "dummy");
+ Objective obj;
+ if (board.getObjective("Vanadium") != null) {
+ obj = board.getObjective("Vanadium");
+ } else {
+ obj = board.registerNewObjective("Vanadium", "dummy");
+ }
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
- obj.setDisplayName(ChatColor.AQUA.toString() + ChatColor.BOLD + "Pluto");
+ obj.setDisplayName(ChatColor.AQUA.toString() + ChatColor.BOLD + ">> Vanadium <<");
+ Score hypens = obj.getScore(ChatColor.GOLD + "=-=-=-=-=-=-=-=");
+ hypens.setScore(9);
Score name = obj.getScore(ChatColor.BLUE + "Player Name: ");
name.setScore(8);
Score name2 = obj.getScore(ChatColor.WHITE + player.getName());
@@ -31,8 +46,10 @@ public class SideBarManager {
space2.setScore(2);
Score website = obj.getScore(ChatColor.YELLOW + "cath.js.org");
website.setScore(1);
-
- Team playersOnline = board.registerNewTeam("deathsTotal");
+ Team playersOnline;
+ if(board.getTeam("deathsTotal") != null) {
+ playersOnline = board.getTeam("deathsTotal");
+ } else playersOnline = board.registerNewTeam("deathsTotal");
playersOnline.addEntry(ChatColor.BOLD.toString());
playersOnline.setPrefix(ChatColor.BLUE + "Deaths: ");
playersOnline.setSuffix(ChatColor.YELLOW + "0");
@@ -41,9 +58,66 @@ public class SideBarManager {
deaths.put(player.getUniqueId(), 0);
}
+ public void start(Player player) {
+ taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(main, new Runnable() {
+ int count = 0;
+ final AnimatedSideBar board = new AnimatedSideBar(player.getUniqueId());
+
+ @Override
+ public void run() {
+ if (!board.hasID())
+ board.setID(taskID);
+ if (count == 13)
+ count = 0;
+ switch (count) {
+ case 0:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &e&lVanadium&1&l <<"));
+ break;
+ case 1:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&b&l>&1&l> &e&lVanadium &1&l<<")); //>
+ break;
+ case 2:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>&b&l> &e&lVanadium &1&l<<")); //>>
+ break;
+ case 3:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &b&lV&e&lanadium&1&l <<"));//V
+ break;
+ case 4:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &e&lV&b&la&e&lnadium&1&l <<")); //Va
+ break;
+ case 5:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &e&lVa&b&ln&e&ladium&1&l <<")); //Van
+ break;
+ case 6:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &e&lVan&b&la&e&ldium&1&l <<")); //Vana
+ break;
+ case 7:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &e&lVana&b&ld&e&lium&1&l <<")); //Vanad
+ break;
+ case 8:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &e&lVanad&b&li&e&lum&1&l <<")); //Vanadi
+ break;
+ case 9:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &e&lVanadi&b&lu&e&lm&1&l <<")); // Vanadiu
+ break;
+ case 10:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &e&lVanadiu&b&lm&1&l <<")); //Vanadium
+ break;
+ case 11:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &e&lVanadium &b&l<&1&l<")); // <
+ break;
+ case 12:
+ player.getScoreboard().getObjective(DisplaySlot.SIDEBAR).setDisplayName(ChatColor.translateAlternateColorCodes('&', "&1&l>> &e&lVanadium &1&l<&b&l<")); // <<
+ setSideBar(player);
+ break;
+ }
+ count++;
+ }
+ }, 0, 10);
+ }
+
public void changeOnDeath(Player player) {
int amount = deaths.get(player.getUniqueId());
- amount++;
deaths.put(player.getUniqueId(), amount++);
player.getScoreboard().getTeam("deathsTotal").setSuffix(ChatColor.YELLOW.toString() + amount);
}