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 c6a489cc01b44f6f69f4dcc245a73a669eb1ff68
parent caba15bb3b829fc8aac2d21e10ecfb4a15a6d266
Author: night0721 <[email protected]>
Date:   Mon, 11 Jul 2022 09:34:06 +0100

new weapon and added custom name manager

Diffstat:
Asrc/main/java/com/night/nullvalkyrie/Events/onEntityDamageByEntity.java | 44++++++++++++++++++++++++++++++++++++++++++++
Asrc/main/java/com/night/nullvalkyrie/Items/CustomItemManager.java | 121+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/main/java/com/night/nullvalkyrie/Main.java | 65+++++++++++++----------------------------------------------------
Asrc/main/java/com/night/nullvalkyrie/Rank/BelowNameManager.java | 19+++++++++++++++++++
Asrc/main/java/com/night/nullvalkyrie/Rank/NameTagManager.java | 46++++++++++++++++++++++++++++++++++++++++++++++
Asrc/main/java/com/night/nullvalkyrie/Rank/Rank.java | 20++++++++++++++++++++
Asrc/main/java/com/night/nullvalkyrie/Rank/RankManager.java | 49+++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/main/java/com/night/nullvalkyrie/Rank/ScoreboardListener.java | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/main/java/com/night/nullvalkyrie/Rank/SideBarManager.java | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/main/java/com/night/nullvalkyrie/RankSys/BelowNameManager.java | 19-------------------
Dsrc/main/java/com/night/nullvalkyrie/RankSys/NameTagManager.java | 47-----------------------------------------------
Dsrc/main/java/com/night/nullvalkyrie/RankSys/Rank.java | 20--------------------
Dsrc/main/java/com/night/nullvalkyrie/RankSys/RankManager.java | 50--------------------------------------------------
Dsrc/main/java/com/night/nullvalkyrie/RankSys/ScoreboardListener.java | 56--------------------------------------------------------
Dsrc/main/java/com/night/nullvalkyrie/RankSys/SideBarManager.java | 58----------------------------------------------------------
Asrc/main/java/com/night/nullvalkyrie/Util/Util.java | 17+++++++++++++++++
Msrc/main/java/com/night/nullvalkyrie/commands/RankCommand.java | 2+-
Msrc/main/java/com/night/nullvalkyrie/commands/WeaponCommand.java | 10+++++++---
18 files changed, 445 insertions(+), 306 deletions(-)

diff --git a/src/main/java/com/night/nullvalkyrie/Events/onEntityDamageByEntity.java b/src/main/java/com/night/nullvalkyrie/Events/onEntityDamageByEntity.java @@ -0,0 +1,44 @@ +package com.night.nullvalkyrie.Events; + +import org.bukkit.ChatColor; +import org.bukkit.entity.*; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByEntityEvent; + +import static com.night.nullvalkyrie.Items.CustomItemManager.loadConfig; + +public class onEntityDamageByEntity implements Listener { + @EventHandler + public void onEntityDamageByEntity(EntityDamageByEntityEvent e) { + if (e.getDamager().getType() == EntityType.SNOWBALL) { + Snowball sb = (Snowball) e.getDamager(); + Player pl = (Player) sb.getShooter(); + if(pl.getInventory().getItemInMainHand().getItemMeta() != null) { + String name = pl.getInventory().getItemInMainHand().getItemMeta().getDisplayName(); + if (name.equalsIgnoreCase(net.md_5.bungee.api.ChatColor.of("#ff23ff") + "SnowGun")) { + e.setDamage(10000); + } else if (name.equalsIgnoreCase("AA-12")) { + e.setDamage(7); + } else { + e.setDamage(0); + } + } + } else if(e.getDamager() instanceof Player) { + Player player = (Player) e.getDamager(); + if(player.getInventory().getItemInMainHand().getItemMeta() != null && player.getInventory().getItemInMainHand().getItemMeta().getLore() != null && player.getInventory().getItemInMainHand().getItemMeta().getLore().contains(ChatColor.GOLD + "Item Ability: Damage Multiplier")) { + if(e.getEntity() instanceof Zombie) { + int zombie = loadConfig("ItemData\\WidowSword.yml").getInt("zombie"); + e.setDamage(e.getDamage() * (1 + zombie / 100)); + } else if(e.getEntity() instanceof Skeleton) { + int skeleton = loadConfig("ItemData\\WidowSword.yml").getInt("skeleton"); + e.setDamage(e.getDamage() * (1 + skeleton / 100)); + } else if(e.getEntity() instanceof Spider) { + int spider = loadConfig("ItemData\\WidowSword.yml").getInt("spider"); + e.setDamage(e.getDamage() * (1 + spider / 100)); + } + player.sendMessage(String.valueOf(e.getDamage())); + } + } + } +} diff --git a/src/main/java/com/night/nullvalkyrie/Items/CustomItemManager.java b/src/main/java/com/night/nullvalkyrie/Items/CustomItemManager.java @@ -0,0 +1,121 @@ +package com.night.nullvalkyrie.Items; + +import com.night.nullvalkyrie.Main; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.NamespacedKey; +import org.bukkit.attribute.Attribute; +import org.bukkit.attribute.AttributeModifier; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.ShapedRecipe; +import org.bukkit.inventory.meta.ItemMeta; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.UUID; + +public class CustomItemManager { + private static Main main; + public CustomItemManager(Main main) { + this.main = main; + if(!main.getDataFolder().exists()) { + main.getDataFolder().mkdir(); + } + + } + public static ItemStack WidowSword; + public static void register() { + createItemDataDirectory("ItemData"); + setWidowSword(); + } + + public static YamlConfiguration loadConfig(String path) { + File f = new File(main.getDataFolder(), path); + if(!f.exists()) { + try { + f.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + return YamlConfiguration.loadConfiguration(f); + } + public static File loadFile(String path) { + File f = new File(main.getDataFolder(), path); + if(!f.exists()) { + try { + f.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + return f; + } + private static void createItemDataDirectory(String path) { + File f = new File(main.getDataFolder(), path); + if(!f.exists()) { + try { + if(!f.mkdir()) { + try { + f.mkdir(); + } catch (SecurityException e) { + e.printStackTrace(); + } + } + } catch (SecurityException e) { + e.printStackTrace(); + } + + } + } + private static void setWidowSword() { + + YamlConfiguration config = loadConfig("ItemData\\WidowSword.yml"); + config.set("zombie", 100); + config.set("skeleton", 100); + config.set("spider", 100); + try { + config.save(loadFile("ItemData\\WidowSword.yml")); + } catch (IOException e) { + e.printStackTrace(); + } + int skeletondmg = config.getInt("skeleton"); + int zombiedmg = config.getInt("zombie"); + int spiderdmg = config.getInt("spider"); + ItemStack widow_sword = new ItemStack(Material.STICK); + widow_sword.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 20); + widow_sword.addUnsafeEnchantment(Enchantment.LOOT_BONUS_MOBS, 10); + ItemMeta wsMeta = widow_sword.getItemMeta(); + wsMeta.setDisplayName(net.md_5.bungee.api.ChatColor.of("#ff23ff") + "Fabled Widow Sword"); + wsMeta.setUnbreakable(true); + ArrayList<String> lore = new ArrayList<>(); + lore.add(ChatColor.GRAY + "Damage: " + ChatColor.RED + "+100"); + lore.add(""); + lore.add(ChatColor.GOLD + "Item Ability: Damage Multiplier"); + lore.add(ChatColor.GRAY + "Damage dealt to mobs will be multiplied"); + lore.add(ChatColor.RED + "Zombie +" + zombiedmg + "%"); + lore.add(ChatColor.RED + "Skeleton +" + skeletondmg + "%"); + lore.add(ChatColor.RED + "Spider +" + spiderdmg + "%"); + lore.add(""); + lore.add(net.md_5.bungee.api.ChatColor.of("#ff23ff").toString() + ChatColor.BOLD + "MYTHIC"); + wsMeta.setLore(lore); + AttributeModifier dmg = new AttributeModifier(UUID.randomUUID(), "generic.attackDamage", 100, AttributeModifier.Operation.ADD_NUMBER, EquipmentSlot.HAND); + wsMeta.addAttributeModifier(Attribute.GENERIC_ATTACK_DAMAGE, dmg); + wsMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); + widow_sword.setItemMeta(wsMeta); + WidowSword = widow_sword; + ShapedRecipe wither_sword_recipe = new ShapedRecipe(new NamespacedKey(main, "widow_sword"), widow_sword); + wither_sword_recipe.shape(" A ", " A "," B "); + wither_sword_recipe.setIngredient('A', Material.IRON_INGOT); + wither_sword_recipe.setIngredient('B', Material.STICK); + Bukkit.addRecipe(wither_sword_recipe); + } +} diff --git a/src/main/java/com/night/nullvalkyrie/Main.java b/src/main/java/com/night/nullvalkyrie/Main.java @@ -2,7 +2,10 @@ package com.night.nullvalkyrie; import com.night.nullvalkyrie.Chests.MenuListener; import com.night.nullvalkyrie.Enchantments.EnchantmentHandler; -import com.night.nullvalkyrie.RankSys.*; +import com.night.nullvalkyrie.Events.onEntityDamageByEntity; +import com.night.nullvalkyrie.Items.CustomItemManager; +import com.night.nullvalkyrie.Rank.*; +import com.night.nullvalkyrie.Util.Util; import com.night.nullvalkyrie.commands.*; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; @@ -10,22 +13,15 @@ import org.bukkit.*; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; -import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.*; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.entity.ProjectileLaunchEvent; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.server.ServerListPingEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.ShapedRecipe; -import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; @@ -36,6 +32,7 @@ public final class Main extends JavaPlugin implements Listener { private NameTagManager nameTagManager; private SideBarManager sideBarManager; private BelowNameManager belowNameManager; + private CustomItemManager customItemManager; public RankManager getRankManager() { return rankManager; @@ -56,22 +53,14 @@ public final class Main extends JavaPlugin implements Listener { Bukkit.getPluginManager().registerEvents(this, this); Bukkit.getPluginManager().registerEvents(new MenuListener(), this); Bukkit.getPluginManager().registerEvents(new ScoreboardListener(this), this); + Bukkit.getPluginManager().registerEvents(new onEntityDamageByEntity(), this); nameTagManager = new NameTagManager(this); rankManager = new RankManager(this); sideBarManager = new SideBarManager(this); belowNameManager = new BelowNameManager(); - ItemStack widow_sword = new ItemStack(Material.STICK); - widow_sword.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 20); - widow_sword.addUnsafeEnchantment(Enchantment.LOOT_BONUS_MOBS, 10); - ItemMeta wsMeta = widow_sword.getItemMeta(); - wsMeta.setDisplayName(net.md_5.bungee.api.ChatColor.of("#ff23ff") + "Fabled Widow Sword"); - wsMeta.setUnbreakable(true); - widow_sword.setItemMeta(wsMeta); - ShapedRecipe wither_sword_recipe = new ShapedRecipe(new NamespacedKey(this, "widow_sword"), widow_sword); - wither_sword_recipe.shape(" A ", " A "," B "); - wither_sword_recipe.setIngredient('A', Material.IRON_INGOT); - wither_sword_recipe.setIngredient('B', Material.STICK); - Bukkit.addRecipe(wither_sword_recipe); + customItemManager = new CustomItemManager(this); + customItemManager.register(); + EnchantmentHandler.register(); } @EventHandler @@ -109,24 +98,12 @@ public final class Main extends JavaPlugin implements Listener { bossbar.addPlayer(e.getPlayer()); e.getPlayer().setPlayerListHeaderFooter(ChatColor.AQUA + "You are playing on " + ChatColor.GREEN + "127.0.0.1", ChatColor.GOLD + "Ranks, boosters, & more!" + ChatColor.AQUA + "127.0.0.1"); } - public String centerText(String text, int lineLength) { - StringBuilder builder = new StringBuilder(); - char space = ' '; - int distance = (lineLength - text.length()) / 2; - for (int ii = 0; ii < distance; ii++) { - builder.append(space); - } - builder.append(text); - for (int i = 0; i < distance; ++i) { - builder.append(space); - } - return builder.toString(); - } + @EventHandler public void onPing(ServerListPingEvent e) { e.setMaxPlayers(8964); - String s = centerText("Matrix", 45); - String s2 = centerText("Support 1.18 & 1.8.9",45); + String s = Util.centerText("Matrix", 45); + String s2 = Util.centerText("Support 1.18 & 1.8.9",45); e.setMotd(ChatColor.AQUA.toString() + ChatColor.BOLD + s + "\n" + ChatColor.GOLD + ChatColor.BOLD + s2); try { e.setServerIcon(Bukkit.loadServerIcon(new File("nuke.png"))); @@ -135,23 +112,7 @@ public final class Main extends JavaPlugin implements Listener { } } - @EventHandler - public void onEntityDamageByEntity(EntityDamageByEntityEvent e) { - if (e.getDamager().getType() == EntityType.SNOWBALL) { - Snowball sb = (Snowball) e.getDamager(); - Player pl = (Player) sb.getShooter(); - if(pl.getInventory().getItemInMainHand().getItemMeta() != null) { - String name = pl.getInventory().getItemInMainHand().getItemMeta().getDisplayName(); - if (name.equalsIgnoreCase(net.md_5.bungee.api.ChatColor.of("#ff23ff") + "SnowGun")) { - e.setDamage(10000); - } else if (name.equalsIgnoreCase("AA-12")) { - e.setDamage(7); - } else { - e.setDamage(0); - } - } - } - } + @EventHandler public void onProjectileHit(ProjectileHitEvent e) { if(e.getEntity().getShooter() instanceof Player) { diff --git a/src/main/java/com/night/nullvalkyrie/Rank/BelowNameManager.java b/src/main/java/com/night/nullvalkyrie/Rank/BelowNameManager.java @@ -0,0 +1,19 @@ +package com.night.nullvalkyrie.Rank; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Scoreboard; + +public class BelowNameManager { + public void setBelowName(Player player) { + Scoreboard board = player.getScoreboard(); + Objective obj = board.registerNewObjective("HealthBar", "health"); + obj.setDisplaySlot(DisplaySlot.BELOW_NAME); + obj.setDisplayName(ChatColor.RED + "❤"); + player.setScoreboard(board); + player.setHealth(player.getHealth()); + + } +} diff --git a/src/main/java/com/night/nullvalkyrie/Rank/NameTagManager.java b/src/main/java/com/night/nullvalkyrie/Rank/NameTagManager.java @@ -0,0 +1,46 @@ +package com.night.nullvalkyrie.Rank; + +import com.night.nullvalkyrie.Main; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Scoreboard; +import org.bukkit.scoreboard.Team; + +public class NameTagManager { + private Main main; + + 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(newScoreboard); + for (Rank rank : Rank.values()) { + Team team = player.getScoreboard().registerNewTeam(rank.name()); + team.setPrefix(rank.getDisplay() + " "); + } + for (Player target : Bukkit.getOnlinePlayers()) { + if (player.getUniqueId() != target.getUniqueId()) { + Rank rank = main.getRankManager().getRank(target.getUniqueId()); + player.getScoreboard().getTeam(rank.name()).addEntry(target.getName()); + } + } + } + public void newTag(Player player) { + Rank rank = main.getRankManager().getRank(player.getUniqueId()); + for(Player target : Bukkit.getOnlinePlayers()) { + target.getScoreboard().getTeam(rank.name()).addEntry(player.getName()); + } + } + public void removeTag(Player player) { + Rank rank = main.getRankManager().getRank(player.getUniqueId()); + for(Player target : Bukkit.getOnlinePlayers()) { + target.getScoreboard().getEntryTeam(player.getName()).removeEntry(player.getName()); + } + } +} diff --git a/src/main/java/com/night/nullvalkyrie/Rank/Rank.java b/src/main/java/com/night/nullvalkyrie/Rank/Rank.java @@ -0,0 +1,20 @@ +package com.night.nullvalkyrie.Rank; + +import org.bukkit.ChatColor; + +public enum Rank { + OWNER(ChatColor.DARK_RED + "{OWNER}"), + ADMIN(ChatColor.RED + "{ADMIN}"), + SPECIAL(ChatColor.GOLD + "{SPECIAL}"), + ROOKIE(ChatColor.DARK_GREEN + "{ROOKIE}"); + + private String display; + + Rank(String display) { + this.display = display; + } + + public String getDisplay() { + return display; + } +} diff --git a/src/main/java/com/night/nullvalkyrie/Rank/RankManager.java b/src/main/java/com/night/nullvalkyrie/Rank/RankManager.java @@ -0,0 +1,49 @@ +package com.night.nullvalkyrie.Rank; + +import com.night.nullvalkyrie.Main; +import org.bukkit.Bukkit; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; + +import java.io.File; +import java.io.IOException; +import java.util.UUID; + +public class RankManager { + private File file; + private YamlConfiguration config; + + private Main main; + + public RankManager(Main main) { + this.main = main; + if(!main.getDataFolder().exists()) { + main.getDataFolder().mkdir(); + } + file = new File(main.getDataFolder(), "ranks.yml"); + if(!file.exists()) { + try { + file.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + config = YamlConfiguration.loadConfiguration(file); + } + public void setRank(UUID uuid, Rank rank) { + config.set(uuid.toString(), rank.name()); + try { + config.save(file); + } catch (IOException e) { + e.printStackTrace(); + } + for(Player player : Bukkit.getOnlinePlayers()) { + main.getNameTagManager().removeTag(player); + main.getNameTagManager().newTag(player); + } + + } + public Rank getRank(UUID uuid) { + return Rank.valueOf(config.getString(uuid.toString())); + } +} diff --git a/src/main/java/com/night/nullvalkyrie/Rank/ScoreboardListener.java b/src/main/java/com/night/nullvalkyrie/Rank/ScoreboardListener.java @@ -0,0 +1,53 @@ +package com.night.nullvalkyrie.Rank; + +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; + +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); + main.getBelowNameManager().setBelowName(player); + e.setJoinMessage(main.getRankManager().getRank(e.getPlayer().getUniqueId()).getDisplay() + " " + e.getPlayer().getName() + ChatColor.WHITE + " joined the server!"); + } + + @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/Rank/SideBarManager.java b/src/main/java/com/night/nullvalkyrie/Rank/SideBarManager.java @@ -0,0 +1,55 @@ +package com.night.nullvalkyrie.Rank; + +import com.night.nullvalkyrie.Main; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +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(); + 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/RankSys/BelowNameManager.java b/src/main/java/com/night/nullvalkyrie/RankSys/BelowNameManager.java @@ -1,19 +0,0 @@ -package com.night.nullvalkyrie.RankSys; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.scoreboard.DisplaySlot; -import org.bukkit.scoreboard.Objective; -import org.bukkit.scoreboard.Scoreboard; - -public class BelowNameManager { - public void setBelowName(Player player) { - Scoreboard board = player.getScoreboard(); - Objective obj = board.registerNewObjective("HealthBar", "health"); - obj.setDisplaySlot(DisplaySlot.BELOW_NAME); - obj.setDisplayName(ChatColor.RED + "❤"); - player.setScoreboard(board); - player.setHealth(player.getHealth()); - - } -} diff --git a/src/main/java/com/night/nullvalkyrie/RankSys/NameTagManager.java b/src/main/java/com/night/nullvalkyrie/RankSys/NameTagManager.java @@ -1,47 +0,0 @@ -package com.night.nullvalkyrie.RankSys; - -import com.night.nullvalkyrie.Main; -import com.night.nullvalkyrie.RankSys.Rank; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.scoreboard.DisplaySlot; -import org.bukkit.scoreboard.Objective; -import org.bukkit.scoreboard.Scoreboard; -import org.bukkit.scoreboard.Team; - -public class NameTagManager { - private Main main; - - 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(newScoreboard); - for (Rank rank : Rank.values()) { - Team team = player.getScoreboard().registerNewTeam(rank.name()); - team.setPrefix(rank.getDisplay() + " "); - } - for (Player target : Bukkit.getOnlinePlayers()) { - if (player.getUniqueId() != target.getUniqueId()) { - Rank rank = main.getRankManager().getRank(target.getUniqueId()); - player.getScoreboard().getTeam(rank.name()).addEntry(target.getName()); - } - } - } - public void newTag(Player player) { - Rank rank = main.getRankManager().getRank(player.getUniqueId()); - for(Player target : Bukkit.getOnlinePlayers()) { - target.getScoreboard().getTeam(rank.name()).addEntry(player.getName()); - } - } - public void removeTag(Player player) { - Rank rank = main.getRankManager().getRank(player.getUniqueId()); - for(Player target : Bukkit.getOnlinePlayers()) { - target.getScoreboard().getEntryTeam(player.getName()).removeEntry(player.getName()); - } - } -} diff --git a/src/main/java/com/night/nullvalkyrie/RankSys/Rank.java b/src/main/java/com/night/nullvalkyrie/RankSys/Rank.java @@ -1,20 +0,0 @@ -package com.night.nullvalkyrie.RankSys; - -import org.bukkit.ChatColor; - -public enum Rank { - OWNER(ChatColor.DARK_RED + "{OWNER}"), - ADMIN(ChatColor.RED + "{ADMIN}"), - SPECIAL(ChatColor.GOLD + "{SPECIAL}"), - ROOKIE(ChatColor.DARK_GREEN + "{ROOKIE}"); - - private String display; - - Rank(String display) { - this.display = display; - } - - public String getDisplay() { - return display; - } -} diff --git a/src/main/java/com/night/nullvalkyrie/RankSys/RankManager.java b/src/main/java/com/night/nullvalkyrie/RankSys/RankManager.java @@ -1,50 +0,0 @@ -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; - -import java.io.File; -import java.io.IOException; -import java.util.UUID; - -public class RankManager { - private File file; - private YamlConfiguration config; - - private Main main; - - public RankManager(Main main) { - this.main = main; - if(!main.getDataFolder().exists()) { - main.getDataFolder().mkdir(); - } - file = new File(main.getDataFolder(), "ranks.yml"); - if(!file.exists()) { - try { - file.createNewFile(); - } catch (IOException e) { - e.printStackTrace(); - } - } - config = YamlConfiguration.loadConfiguration(file); - } - public void setRank(UUID uuid, Rank rank) { - config.set(uuid.toString(), rank.name()); - try { - config.save(file); - } catch (IOException e) { - e.printStackTrace(); - } - for(Player player : Bukkit.getOnlinePlayers()) { - main.getNameTagManager().removeTag(player); - main.getNameTagManager().newTag(player); - } - - } - public Rank getRank(UUID uuid) { - return Rank.valueOf(config.getString(uuid.toString())); - } -} diff --git a/src/main/java/com/night/nullvalkyrie/RankSys/ScoreboardListener.java b/src/main/java/com/night/nullvalkyrie/RankSys/ScoreboardListener.java @@ -1,56 +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.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); - main.getBelowNameManager().setBelowName(player); - e.setJoinMessage(main.getRankManager().getRank(e.getPlayer().getUniqueId()).getDisplay() + " " + e.getPlayer().getName() + ChatColor.WHITE + " joined the server!"); - } - - @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/RankSys/SideBarManager.java b/src/main/java/com/night/nullvalkyrie/RankSys/SideBarManager.java @@ -1,58 +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.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(); - 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/Util/Util.java b/src/main/java/com/night/nullvalkyrie/Util/Util.java @@ -0,0 +1,17 @@ +package com.night.nullvalkyrie.Util; + +public class Util { + public static String centerText(String text, int lineLength) { + StringBuilder builder = new StringBuilder(); + char space = ' '; + int distance = (lineLength - text.length()) / 2; + for (int ii = 0; ii < distance; ii++) { + builder.append(space); + } + builder.append(text); + for (int i = 0; i < distance; ++i) { + builder.append(space); + } + return builder.toString(); + } +} diff --git a/src/main/java/com/night/nullvalkyrie/commands/RankCommand.java b/src/main/java/com/night/nullvalkyrie/commands/RankCommand.java @@ -3,7 +3,7 @@ package com.night.nullvalkyrie.commands; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.night.nullvalkyrie.Main; -import com.night.nullvalkyrie.RankSys.Rank; +import com.night.nullvalkyrie.Rank.Rank; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; diff --git a/src/main/java/com/night/nullvalkyrie/commands/WeaponCommand.java b/src/main/java/com/night/nullvalkyrie/commands/WeaponCommand.java @@ -1,6 +1,7 @@ package com.night.nullvalkyrie.commands; import com.night.nullvalkyrie.Enchantments.EnchantmentHandler; +import com.night.nullvalkyrie.Items.CustomItemManager; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.CommandSender; @@ -29,8 +30,9 @@ public class WeaponCommand extends Command { @Override public void onCommand(CommandSender sender, String[] args) { + System.out.println(args[0]); Player player = (Player) sender; - if(args[0].equalsIgnoreCase("snowgun")) { + if(args[0].equalsIgnoreCase("Snow Gun")) { ItemStack hoe = new ItemStack(Material.DIAMOND_HOE); hoe.addUnsafeEnchantment(EnchantmentHandler.ThunderBolt, 5); hoe.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 20); @@ -41,7 +43,7 @@ public class WeaponCommand extends Command { hoe.setItemMeta(hoedata); player.getInventory().addItem(hoe); - } else if(args[0].equalsIgnoreCase("grenade")) { + } else if(args[0].equalsIgnoreCase("Grenade")) { ItemStack egg = new ItemStack(Material.EGG); ItemMeta eggdata = egg.getItemMeta(); eggdata.setDisplayName(net.md_5.bungee.api.ChatColor.of("#ff23ff") + "Frag Grenade"); @@ -49,13 +51,15 @@ public class WeaponCommand extends Command { eggdata.setLore(Arrays.asList(ChatColor.GOLD + "Boom")); egg.setItemMeta(eggdata); player.getInventory().addItem(egg); + } else if(args[0].equalsIgnoreCase("Widow Sword")) { + player.getInventory().addItem(CustomItemManager.WidowSword); } } @Override public List<String> onTabComplete(CommandSender sender, String[] args) { if(args.length == 1) { - return StringUtil.copyPartialMatches(args[0], Arrays.asList("snowgun", "grenade"), new ArrayList<>()); + return StringUtil.copyPartialMatches(args[0], Arrays.asList("Snow Gun", "Grenade", "Widow Sword"), new ArrayList<>()); } return new ArrayList<>(); }