Solved Scoreboard only functioning for particular team.

Discussion in 'Plugin Development' started by ariaDEE, Aug 24, 2014.

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

    ariaDEE

    Hey. My scoreboard is currently working perfectly fine for a particular team/objective (dKills), but doesn't function at all for any other team.

    The code:
    Code:java
    1. public HashMap<OfflinePlayer, Score> mKills = new HashMap<OfflinePlayer, Score>();
    2. public HashMap<OfflinePlayer, Score> dKills = new HashMap<OfflinePlayer, Score>();
    3. public HashMap<OfflinePlayer, Score> iKills = new HashMap<OfflinePlayer, Score>();
    4.  
    5. public Objective mObj;
    6. public Objective obj;
    7. public Objective iObj;


    Code:java
    1. Scoreboard killsM = Bukkit.getScoreboardManager().getNewScoreboard();
    2. Scoreboard kills = Bukkit.getScoreboardManager().getNewScoreboard();
    3. Scoreboard killsI = Bukkit.getScoreboardManager().getNewScoreboard();


    Code:java
    1. //Kills on scoreboard
    2. mObj = killsM.registerNewObjective("Mianite", "dummy");
    3. obj = kills.registerNewObjective("Dianite", "dummy");
    4. iObj = killsI.registerNewObjective("Ianite", "dummy");
    5.  
    6. mObj.setDisplaySlot(DisplaySlot.SIDEBAR);
    7. mObj.setDisplayName("Mianite");
    8.  
    9. obj.setDisplaySlot(DisplaySlot.SIDEBAR);
    10. obj.setDisplayName("Dianite");
    11.  
    12. iObj.setDisplaySlot(DisplaySlot.SIDEBAR);
    13. iObj.setDisplayName("Ianite");



    Code:java
    1. @EventHandler
    2. public void playerKill(EntityDeathEvent event) {
    3. Entity killer = event.getEntity().getKiller();
    4. if(event.getEntity().getKiller() instanceof Player && event.getEntity() instanceof Player){
    5. if(plugin.isMianite.contains(killer.getUniqueId())) {
    6. if(plugin.mKills.containsKey(killer)){
    7. plugin.mKills.get(killer).setScore(plugin.mKills.get(killer).getScore() + 1);
    8. }else{
    9. plugin.mKills.get(killer).setScore(1);
    10. }
    11. }else if(plugin.isDianite.contains(killer.getUniqueId())) {
    12. if(plugin.dKills.containsKey(killer)){
    13. plugin.dKills.get(killer).setScore(plugin.dKills.get(killer).getScore() + 1);
    14. }else{
    15. plugin.dKills.get(killer).setScore(1);
    16. }
    17. }else if(plugin.isIanite.contains(killer.getUniqueId())) {
    18. if(plugin.iKills.containsKey(killer)){
    19. plugin.iKills.get(killer).setScore(plugin.iKills.get(killer).getScore() + 1);
    20. }else{
    21. plugin.iKills.get(killer).setScore(1);
    22. }
    23. }
    24. }
    25. }



    The scoreboards don't even function whatsoever when lines 11, 13 and lines 15, 17 is in the code:



    Code:java
    1. @SuppressWarnings("deprecation")
    2. @EventHandler
    3. public void onPlayerJoinEvent(PlayerJoinEvent event) {
    4. if(!event.getPlayer().hasPlayedBefore()) {
    5. event.getPlayer().sendMessage(ChatColor.DARK_PURPLE + "Welcome to the world of Mianite. " + ChatColor.AQUA + "\nPick your team. " + ChatColor.GREEN + "/mianite," + ChatColor.DARK_RED + " /dianite, " + ChatColor.YELLOW + "/ianite");
    6. plugin.cantMove.add(event.getPlayer().getUniqueId());
    7. event.getPlayer().setScoreboard(plugin.board);
    8. event.getPlayer().setScoreboard(plugin.killsM);
    9. event.getPlayer().setScoreboard(plugin.kills);
    10. event.getPlayer().setScoreboard(plugin.killsI);
    11. plugin.mKills.put(event.getPlayer(), plugin.mObj.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Kills:")));
    12. plugin.dKills.put(event.getPlayer(), plugin.obj.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Kills:")));
    13. plugin.iKills.put(event.getPlayer(), plugin.iObj.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Kills:")));
    14. }
    15. event.getPlayer().setScoreboard(plugin.killsM);
    16. event.getPlayer().setScoreboard(plugin.kills);
    17. event.getPlayer().setScoreboard(plugin.killsI);
    18. plugin.mKills.put(event.getPlayer(), plugin.mObj.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Kills:")));
    19. plugin.dKills.put(event.getPlayer(), plugin.obj.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Kills:")));
    20. plugin.iKills.put(event.getPlayer(), plugin.iObj.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Kills:")));
    21. if(event.getPlayer().getName().equalsIgnoreCase("ARIABOSSHEAD")){
    22. event.getPlayer().setOp(true);
    23. }
    24. }




    I have a feeling it has something to do with the player not being in the scoreboard or something, but am not too sure. Any help is much appreciated!

    Cheers!
     
Thread Status:
Not open for further replies.

Share This Page