Need help with ScoreBoard

Discussion in 'Plugin Development' started by Diegokoen, Mar 26, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    Diegokoen

    I am making a kit-pvp plugin but my scoreboard isn't working correct. If a player killing an other player get everyone +1 kill here is my code:

    package me.Diegokoen.Test;

    import java.util.HashMap;
    import java.util.List;

    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.OfflinePlayer;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDeathEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    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;

    public class main extends JavaPlugin implements Listener {

    private Scoreboard board;
    private Objective o;
    private HashMap<OfflinePlayer, Score> scores = new HashMap<OfflinePlayer, Score>();

    public void onEnable() {
    Bukkit.getServer().getPluginManager().registerEvents(this, this);

    board = Bukkit.getServer().getScoreboardManager().getNewScoreboard();

    o = board.registerNewObjective("test", "dummy");
    o.setDisplayName("§cKills");
    o.setDisplaySlot(DisplaySlot.SIDEBAR);

    saveDefaultConfig();

    List<String> s = getConfig().getStringList("scores");

    for (String str : s) {
    String[] words = str.split(":");
    scores.put(Bukkit.getServer().getOfflinePlayer(words[0]), o.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Kills")));
    scores.get(Bukkit.getServer().getOfflinePlayer(words[0])).setScore(Integer.parseInt(words[1]));
    }
    }

    public void onDisable() {
    List<String> s = getConfig().getStringList("scores");

    for (OfflinePlayer p : scores.keySet()) {
    s.add(p.getName() + ":" + scores.get(p).getScore());
    }

    getConfig().set("scores", s);
    saveConfig();
    }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
    Player p = e.getPlayer();

    p.setScoreboard(board);

    if (scores.get(p) == null) scores.put(p, o.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Kills")));
    }


    @EventHandler
    public void onEntityDeath(EntityDeathEvent e) {
    if (e.getEntity() instanceof Player) {

    Player killer = e.getEntity().getKiller();

    scores.get(killer).setScore(scores.get(killer).getScore() + 1);
    }
    }
    }
    ps: I don't have errors
     
  2. Offline

    Diegokoen

  3. Offline

    MCMastery

    Diegokoen
    Next time, please put your code in actual syntax.
    It's easier to read.
     
Thread Status:
Not open for further replies.

Share This Page