Hello Guys, I want to make a level plugin if his kills is 10 > level 1 - 20 kills > level 2 etc... , I won't repeat it 1000 times because its very big, is there a method I can do it with? , Note: I store kills in the config. My Code: Code: @SuppressWarnings("deprecation") @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(Main.c("&cYou must be a player to use this command!")); return true; } Player p = (Player) sender; if (args.length == 1) { OfflinePlayer t = p.getServer().getOfflinePlayer(args[0]); String uuid = t.getUniqueId().toString(); if (!t.isOnline()) { p.sendMessage(Main.c(Main.prefix + "&cCould not find " + args[0] + "&c!")); return true; } int kills = Main.getPlugin().getConfig().getInt("Players." + uuid + ".Kills"); int points = Main.getPlugin().getConfig().getInt("Players." + uuid + ".Points"); int deaths = Main.getPlugin().getConfig().getInt("Players." + uuid + ".Deaths"); double kdr = deaths > 0 ? ((double) kills / (double) deaths) : -1; String out = String.format("%.1f", Double.valueOf(kdr)); p.sendMessage(Main.c(Main.prefix + "&8&m---------&8〡&6Stats&8〡&8&m---------")); p.sendMessage(Main.c(Main.prefix + "&6Player: &7" + t.getName())); p.sendMessage(Main.c(Main.prefix + "&6Points: &7" + points)); p.sendMessage(Main.c(Main.prefix + "&6Kills: &7" + kills)); p.sendMessage(Main.c(Main.prefix + "&6Deaths: &7" + deaths)); p.sendMessage(Main.c(Main.prefix + "&6KillStreak: &7" + p.getLevel())); p.sendMessage(Main.c(Main.prefix + "&6KDR: &7" + out)); p.sendMessage(Main.c(Main.prefix + "&8&m---------&8〡&6Stats&8〡&8&m---------")); return true; } else { if (args.length == 0) { String uuid = p.getUniqueId().toString(); int kills = Main.getPlugin().getConfig().getInt("Players." + uuid + ".Kills"); int points = Main.getPlugin().getConfig().getInt("Players." + uuid + ".Points"); int deaths = Main.getPlugin().getConfig().getInt("Players." + uuid + ".Deaths"); double kdr = deaths > 0 ? ((double) kills / (double) deaths) : -1; String out = String.format("%.1f", Double.valueOf(kdr)); p.sendMessage(Main.c(Main.prefix + "&8&m---------&8〡&6Stats&8〡&8&m---------")); p.sendMessage(Main.c(Main.prefix + "&6Player: &7" + p.getName())); p.sendMessage(Main.c(Main.prefix + "&6Points: &7" + points)); p.sendMessage(Main.c(Main.prefix + "&6Kills: &7" + kills)); p.sendMessage(Main.c(Main.prefix + "&6Deaths: &7" + deaths)); p.sendMessage(Main.c(Main.prefix + "&6KillStreak: &7" + p.getLevel())); p.sendMessage(Main.c(Main.prefix + "&6KDR: &7" + out)); p.sendMessage(Main.c(Main.prefix + "&8&m---------&8〡&6Stats&8〡&8&m---------")); return true; } else { if (args.length > 1) { p.sendMessage(Main.c(Main.prefix + "&cInvaild arguments. Usage: /stats (player)")); return true; } } } return true; }
thanks. Can I ask you something ? How can I make the scoreboard on one world only. I tried to make:- Code: if(p.getWorld().getName().equals("SkyPvP")) { updateSB(p); } else { p.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard); } It works good, but when I go to skypvp world then I go to creative world it shows. When I don't go to skypvp world and directly to creative world it don't show. My Code: Code: package me.mohammed.mylvl.Utilities; import org.bukkit.Bukkit; 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.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Score; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.ScoreboardManager; import me.mohammed.mylvl.Main; public class SB implements Listener { @EventHandler public void on(PlayerJoinEvent e) { Player p = e.getPlayer(); updateSB(p); } @EventHandler public void on(PlayerRespawnEvent e) { Player p = e.getPlayer(); updateSB(p); } @EventHandler public void on4(PlayerDeathEvent e) { Player p = (Player) e.getEntity(); Player k = p.getKiller(); updateSB(k); updateSB(p); } @EventHandler public void on(PlayerChangedWorldEvent e) { Player p = e.getPlayer(); updateSB(p); } public static void updateSB(Player p) { if(p.getWorld().getName().equals("SkyPvP")) { ScoreboardManager manager = Bukkit.getScoreboardManager(); Scoreboard board = manager.getNewScoreboard(); String uuid = p.getUniqueId().toString(); int kills = Main.getPlugin().getConfig().getInt("Players." + uuid + ".Kills"); int level = kills / 10; int deaths = Main.getPlugin().getConfig().getInt("Players." + uuid + ".Deaths"); double kdr = deaths > 0 ? ((double) kills / (double) deaths) : -1; String out = String.format("%.1f", Double.valueOf(kdr)); Objective o = board.registerNewObjective("test", "dummy"); o.setDisplaySlot(DisplaySlot.SIDEBAR); o.setDisplayName(Main.c(" &6Statistics ")); Score s1 = o.getScore(" "); s1.setScore(12); Score f6 = o.getScore(" "); f6.setScore(11); Score s2 = o.getScore(Main.c("&3Level: &f" + level)); s2.setScore(10); Score f1 = o.getScore(" "); f1.setScore(9); Score s3 = o.getScore(Main.c("&3Kills: &f" + kills)); s3.setScore(8); Score f2 = o.getScore(" "); f2.setScore(7); Score s4 = o.getScore(Main.c("&3Deaths: &f" + deaths)); s4.setScore(6); Score f3 = o.getScore(" "); f3.setScore(5); Score s5 = o.getScore(Main.c("&3KDR: &f" + out)); s5.setScore(4); Score f4 = o.getScore(" "); f4.setScore(3); Score s6 = o.getScore(Main.c("&3Streak: &f" + p.getLevel())); s6.setScore(2); Score s7 = o.getScore(" "); s7.setScore(1); p.setScoreboard(board); } else { p.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard()); } } } EDIT by Moderator: merged posts, please use the edit button instead of double posting.