I don't how to set the scoreboard to update automatically, I have when you join it updates but I want it so when you get a kill or you die it updates please help. Code (Scoreboard is at the bottom): Code: package FB.Teams; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; 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 java.io.File; import java.io.IOException; public class Main extends JavaPlugin implements Listener { private Main plugin; static FileConfiguration config; public static String prefix = "§5Stats §7| §3"; public static File file = new File("plugins/Stats", "Stats.yml"); public static FileConfiguration cfg; static { cfg = YamlConfiguration.loadConfiguration(file); } public Main() { } public static void saveFile() { try { cfg.save(file); } catch (IOException var1) { var1.printStackTrace(); } } public void onEnable() { PluginManager pm = Bukkit.getPluginManager(); registerEvents(pm); super.onEnable(); } private void registerEvents(PluginManager pm) { pm.registerEvents(new DeathListener(), this); Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "---------------------------"); Bukkit.getConsoleSender().sendMessage(ChatColor.BLUE + "Teams plugin has been " + ChatColor.GREEN + "ENABLED!"); Bukkit.getConsoleSender().sendMessage(ChatColor.YELLOW + "Plugin made by: FBS1imJim"); Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "---------------------------"); Team.clearTeams(); Bukkit.getPluginManager().registerEvents(this, this); for (Player players : Bukkit.getOnlinePlayers()) { updateScoreboard(players); } } public void onDisable() { Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "---------------------------"); Bukkit.getConsoleSender().sendMessage(ChatColor.BLUE + "Teams plugin has been " + ChatColor.RED + "DISABLED!"); Bukkit.getConsoleSender().sendMessage(ChatColor.YELLOW + "Plugin made by: FBS1imJim"); Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "---------------------------"); Team.clearTeams(); } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (label.equalsIgnoreCase("team") && args[0].equalsIgnoreCase("join")) { int i = 0; for (Player player : Bukkit.getOnlinePlayers()) { if (i < Bukkit.getOnlinePlayers().size() / 2) { Team.addToTeam(TeamType.RED, player); } else { Team.addToTeam(TeamType.BLUE, player); } i++; } } if (label.equalsIgnoreCase("myteam")) { sender.sendMessage(ChatColor.GREEN + "You are in " + Team.getTeamType(((Player) sender)).name() + " team."); } Player player = (Player) sender; if (label.equalsIgnoreCase("team") && args[0].equalsIgnoreCase("leave")) { sender.sendMessage(ChatColor.BLACK + "[" + ChatColor.BLUE + "Teams" + ChatColor.BLACK + "] " + ChatColor.GOLD + "You have left the " + Team.getTeamType(((Player) sender)).name() + " team."); } if (cmd.getName().equalsIgnoreCase("stats")) { player.sendMessage("§aYour stats:"); player.sendMessage("§3Kills: §8" + Stats.getKills(player.getName())); player.sendMessage("§3Deaths: §8" + Stats.getDeaths(player.getName())); } return true; } /*Start of the scoreboard stuff Look in onEnable for the other stuff */ @EventHandler public void onJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); updateScoreboard(player); } public void updateScoreboard(Player player) { ScoreboardManager manager = Bukkit.getScoreboardManager(); Scoreboard board = manager.getNewScoreboard(); updateScoreboard(player); Objective obj = board.registerNewObjective("dummy", "Kills"); obj.setDisplaySlot(DisplaySlot.SIDEBAR); obj.setDisplayName(ChatColor.RED + "Kills:" + ChatColor.RESET); Score score1 = obj.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Kills:" + ChatColor.RESET)); Score score2 = obj.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Deaths:" + ChatColor.RESET)); score1.setScore(Stats.getKills(player.getName())); score2.setScore(Stats.getDeaths(player.getName())); for (Player all : Bukkit.getOnlinePlayers()) { all.setScoreboard(board); } } }
@TrippyHD Uh... Your updateScoreboard method calls itself. Is this intentional? But other than that, you can just do a PlayerDeathEvent for when the player dies. For when the player kills someone, adding on to the PlayerDeathEvent, you can do getLastDamageCause(), check if it's instanceof an EntityDamageByEntityEvent, and check if the damager was a player. If so, give the damager a kill.