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

commit 8fefa1c0db0afbd0bb1a138ebb107f0d040783ab
parent 0b464de40a43fa689fffcf6b9a206cdb0f8a375f
Author: night0721 <[email protected]>
Date:   Thu,  7 Jul 2022 09:30:14 +0100

Slight fix of hologram, fix on all scoreboard

Diffstat:
Msrc/main/java/com/night/nullvalkyrie/Main.java | 13+++++++------
Msrc/main/java/com/night/nullvalkyrie/NameTag/NameTagManager.java | 3++-
Dsrc/main/java/com/night/nullvalkyrie/RankSys/RankListener.java | 42------------------------------------------
Msrc/main/java/com/night/nullvalkyrie/RankSys/RankManager.java | 1+
Asrc/main/java/com/night/nullvalkyrie/RankSys/ScoreboardListener.java | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/main/java/com/night/nullvalkyrie/SideBar/SideBarListener.java | 55-------------------------------------------------------
Asrc/main/java/com/night/nullvalkyrie/SideBar/SideBarManager.java | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/main/java/com/night/nullvalkyrie/commands/HologramCommand.java | 5+++--
8 files changed, 128 insertions(+), 106 deletions(-)

diff --git a/src/main/java/com/night/nullvalkyrie/Main.java b/src/main/java/com/night/nullvalkyrie/Main.java @@ -2,9 +2,9 @@ package com.night.nullvalkyrie; import com.night.nullvalkyrie.Chests.MenuListener; import com.night.nullvalkyrie.NameTag.NameTagManager; -import com.night.nullvalkyrie.RankSys.RankListener; +import com.night.nullvalkyrie.RankSys.ScoreboardListener; import com.night.nullvalkyrie.RankSys.RankManager; -import com.night.nullvalkyrie.SideBar.SideBarListener; +import com.night.nullvalkyrie.SideBar.SideBarManager; import com.night.nullvalkyrie.commands.*; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; @@ -21,7 +21,6 @@ import org.bukkit.entity.Snowball; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; -import org.bukkit.event.entity.EntityInteractEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.server.ServerListPingEvent; @@ -36,11 +35,13 @@ public final class Main extends JavaPlugin implements Listener { private BossBar bossbar; private RankManager rankManager; private NameTagManager nameTagManager; + private SideBarManager sideBarManager; public RankManager getRankManager() { return rankManager; } public NameTagManager getNameTagManager() { return nameTagManager; } + public SideBarManager getSideBarManager() { return sideBarManager; } @Override public void onEnable() { // Plugin startup logic @@ -61,10 +62,10 @@ public final class Main extends JavaPlugin implements Listener { ); Bukkit.getPluginManager().registerEvents(this, this); Bukkit.getPluginManager().registerEvents(new MenuListener(), this); - Bukkit.getPluginManager().registerEvents(new RankListener(this), this); - Bukkit.getPluginManager().registerEvents(new SideBarListener(this), this); - rankManager = new RankManager(this); + Bukkit.getPluginManager().registerEvents(new ScoreboardListener(this), this); nameTagManager = new NameTagManager(this); + rankManager = new RankManager(this); + sideBarManager = new SideBarManager(this); ItemStack widow_sword = new ItemStack(Material.STICK); widow_sword.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 20); diff --git a/src/main/java/com/night/nullvalkyrie/NameTag/NameTagManager.java b/src/main/java/com/night/nullvalkyrie/NameTag/NameTagManager.java @@ -15,11 +15,12 @@ public class NameTagManager { public NameTagManager(Main main) { this.main = main; } + @SuppressWarnings("deprecation") public void setNametags(Player player) { Scoreboard newScoreboard = Bukkit.getScoreboardManager().getNewScoreboard(); Objective obj = newScoreboard.registerNewObjective("TabList", "dummy"); obj.setDisplaySlot(DisplaySlot.PLAYER_LIST); - player.setScoreboard(obj.getScoreboard()); + player.setScoreboard(newScoreboard); for (Rank rank : Rank.values()) { Team team = player.getScoreboard().registerNewTeam(rank.name()); team.setPrefix(rank.getDisplay() + " "); diff --git a/src/main/java/com/night/nullvalkyrie/RankSys/RankListener.java b/src/main/java/com/night/nullvalkyrie/RankSys/RankListener.java @@ -1,42 +0,0 @@ -package com.night.nullvalkyrie.RankSys; - -import com.night.nullvalkyrie.Main; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; - -public class RankListener implements Listener { - - private Main main; - public RankListener(Main main) { - this.main = main; - } - - @EventHandler - public void onJoin(PlayerJoinEvent e) { - Player player = e.getPlayer(); - if(!player.hasPlayedBefore()) { - main.getRankManager().setRank(player.getUniqueId(), Rank.ROOKIE); - } - main.getNameTagManager().setNametags(player); - main.getNameTagManager().newTag(player); - } - - @EventHandler - public void onQuit(PlayerQuitEvent e) { - e.setQuitMessage(ChatColor.RED + "bozo " + e.getPlayer().getName() + " has left."); - main.getNameTagManager().removeTag(e.getPlayer()); - } - - @EventHandler - public void onChat(AsyncPlayerChatEvent e) { - e.setCancelled(true); - Player player = e.getPlayer(); - Bukkit.broadcastMessage(main.getRankManager().getRank(player.getUniqueId()).getDisplay() + " " + player.getName() + ChatColor.WHITE + ": " + e.getMessage()); - } -} diff --git a/src/main/java/com/night/nullvalkyrie/RankSys/RankManager.java b/src/main/java/com/night/nullvalkyrie/RankSys/RankManager.java @@ -2,6 +2,7 @@ package com.night.nullvalkyrie.RankSys; import com.night.nullvalkyrie.Main; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; diff --git a/src/main/java/com/night/nullvalkyrie/RankSys/ScoreboardListener.java b/src/main/java/com/night/nullvalkyrie/RankSys/ScoreboardListener.java @@ -0,0 +1,54 @@ +package com.night.nullvalkyrie.RankSys; + +import com.night.nullvalkyrie.Main; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +import java.util.HashMap; +import java.util.UUID; + +public class ScoreboardListener implements Listener { + + private Main main; + public ScoreboardListener(Main main) { + this.main = main; + } + + @EventHandler + public void onJoin(PlayerJoinEvent e) { + Player player = e.getPlayer(); + if(!player.hasPlayedBefore()) { + main.getRankManager().setRank(player.getUniqueId(), Rank.ROOKIE); + } + main.getNameTagManager().setNametags(player); + main.getNameTagManager().newTag(player); + main.getSideBarManager().setSideBar(player); + } + + @EventHandler + public void onQuit(PlayerQuitEvent e) { + e.setQuitMessage(ChatColor.RED + "bozo " + e.getPlayer().getName() + " has left."); + main.getNameTagManager().removeTag(e.getPlayer()); + e.getPlayer().setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard()); + } + + @EventHandler + public void onChat(AsyncPlayerChatEvent e) { + e.setCancelled(true); + Player player = e.getPlayer(); + Bukkit.broadcastMessage(main.getRankManager().getRank(player.getUniqueId()).getDisplay() + " " + player.getName() + ChatColor.WHITE + ": " + e.getMessage()); + } + + //Death changing in sidebar + @EventHandler + public void onDeath(PlayerDeathEvent e) { + main.getSideBarManager().changeOnDeath(e.getEntity().getPlayer()); + } +} diff --git a/src/main/java/com/night/nullvalkyrie/SideBar/SideBarListener.java b/src/main/java/com/night/nullvalkyrie/SideBar/SideBarListener.java @@ -1,55 +0,0 @@ -package com.night.nullvalkyrie.SideBar; - -import com.night.nullvalkyrie.Main; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.scoreboard.*; - -import java.util.HashMap; -import java.util.UUID; - -public class SideBarListener implements Listener { - private Main main; - public SideBarListener(Main main) { - this.main = main; - } - private HashMap<UUID, Integer> deaths = new HashMap<>(); - @EventHandler - public void onJoin(PlayerJoinEvent e) { - Player player = e.getPlayer(); - Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard(); - Objective obj = board.registerNewObjective("Pluto", "dummy"); - obj.setDisplaySlot(DisplaySlot.SIDEBAR); - obj.setDisplayName(ChatColor.AQUA.toString() + ChatColor.BOLD + "Pluto"); - Score website = obj.getScore(ChatColor.YELLOW + "cath.js.org"); - website.setScore(1); - Score space1 = obj.getScore(" "); - space1.setScore(2); - Score name = obj.getScore(ChatColor.BLUE + "Player Name: " + player.getName()); - name.setScore(4); - Team playersOnline = board.registerNewTeam("deathsTotal"); - playersOnline.addEntry(ChatColor.BOLD.toString()); - playersOnline.setPrefix(ChatColor.BLUE + "Deaths: "); - playersOnline.setSuffix(ChatColor.YELLOW + "0"); - obj.getScore(ChatColor.BOLD.toString()).setScore(3); - player.setScoreboard(board); - deaths.put(player.getUniqueId(), 0); - } - - @EventHandler - public void onDeath(PlayerDeathEvent e) { - Player player = e.getEntity().getPlayer(); - int amount = deaths.get(player.getUniqueId()); - amount++; - deaths.put(player.getUniqueId(), amount); - player.getScoreboard().getTeam("deathsTotal").setSuffix(ChatColor.YELLOW.toString() + amount); - } - - - -} diff --git a/src/main/java/com/night/nullvalkyrie/SideBar/SideBarManager.java b/src/main/java/com/night/nullvalkyrie/SideBar/SideBarManager.java @@ -0,0 +1,61 @@ +package com.night.nullvalkyrie.SideBar; + +import com.night.nullvalkyrie.Main; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.scoreboard.*; +import org.bukkit.scoreboard.Scoreboard; + +import java.util.HashMap; +import java.util.UUID; + +public class SideBarManager { + private Main main; + public SideBarManager(Main main) { + this.main = main; + } + private HashMap<UUID, Integer> deaths = new HashMap<>(); + @SuppressWarnings("deprecation") + public void setSideBar(Player player) { + Scoreboard board = player.getScoreboard(); + if(board.getObjective("Pluto") != null) { + + } + Objective obj = board.registerNewObjective("Pluto", "dummy"); + obj.setDisplaySlot(DisplaySlot.SIDEBAR); + obj.setDisplayName(ChatColor.AQUA.toString() + ChatColor.BOLD + "Pluto"); + Score name = obj.getScore(ChatColor.BLUE + "Player Name: "); + name.setScore(8); + Score name2 = obj.getScore(ChatColor.WHITE + player.getName()); + name2.setScore(7); + Score space1 = obj.getScore(" "); + space1.setScore(6); + Score players = obj.getScore(ChatColor.LIGHT_PURPLE + "Players Online:"); + players.setScore(5); + Score playercount = obj.getScore(ChatColor.YELLOW.toString() + Bukkit.getServer().getOnlinePlayers().size()); + playercount.setScore(4); + Score space2 = obj.getScore(" "); + space2.setScore(2); + Score website = obj.getScore(ChatColor.YELLOW + "cath.js.org"); + website.setScore(1); + + Team playersOnline = board.registerNewTeam("deathsTotal"); + playersOnline.addEntry(ChatColor.BOLD.toString()); + playersOnline.setPrefix(ChatColor.BLUE + "Deaths: "); + playersOnline.setSuffix(ChatColor.YELLOW + "0"); + obj.getScore(ChatColor.BOLD.toString()).setScore(3); + player.setScoreboard(board); + deaths.put(player.getUniqueId(), 0); + } + + 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); + } +} diff --git a/src/main/java/com/night/nullvalkyrie/commands/HologramCommand.java b/src/main/java/com/night/nullvalkyrie/commands/HologramCommand.java @@ -21,8 +21,9 @@ public class HologramCommand implements CommandExecutor { }; Location location = player.getLocation(); for(String line: ar) { - ArmorStand stand = (ArmorStand) player.getWorld().spawnEntity(location.subtract(0,0.3,0), EntityType.ARMOR_STAND); - stand.setInvisible(true); + ArmorStand stand = location.getWorld().spawn(location.subtract(0,0.3,0), ArmorStand.class, armorStand -> { + armorStand.setVisible(false); + }); stand.setGravity(false); stand.setInvulnerable(true); stand.setCustomNameVisible(true);