Scoreboard not Updating?

Discussion in 'Plugin Development' started by CandyCranium, Mar 2, 2014.

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

    CandyCranium

    I have a scoreboard where it displays the EXP level on it, but the scoreboard doesn't seem to update everytime the EXP level changes. It only updates when the player relogs.

    Here's the code:
    Code:java
    1.  
    2. import org.bukkit.Bukkit;
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.event.EventHandler;
    5. import org.bukkit.event.Listener;
    6. import org.bukkit.event.player.PlayerExpChangeEvent;
    7. import org.bukkit.event.player.PlayerJoinEvent;
    8. import org.bukkit.plugin.java.JavaPlugin;
    9. import org.bukkit.scoreboard.DisplaySlot;
    10. import org.bukkit.scoreboard.Objective;
    11. import org.bukkit.scoreboard.Scoreboard;
    12.  
    13. public class Main extends JavaPlugin implements Listener {
    14.  
    15. public void onEnable() {
    16. this.getServer().getPluginManager().registerEvents(this, this);
    17. }
    18.  
    19. @EventHandler
    20. public void onPlayerJoin(PlayerJoinEvent event) {
    21. Scoreboard scoreBoard = Bukkit.getServer().getScoreboardManager().getNewScoreboard();
    22. Objective gunObj = scoreBoard.registerNewObjective("test", "dummy");
    23. gunObj.setDisplayName("GunPvP");
    24. gunObj.setDisplaySlot(DisplaySlot.SIDEBAR);
    25. gunObj.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Level:")).setScore(event.getPlayer().getLevel());
    26. event.getPlayer().setScoreboard(scoreBoard);
    27. }
    28.  
    29. @EventHandler
    30. public void onPlayerEXPChange(PlayerExpChangeEvent event) {
    31. if (event.getPlayer().getScoreboard() != null) {
    32. Scoreboard scoreboard = event.getPlayer().getScoreboard();
    33. scoreboard.getObjective("test").getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Level:")).setScore(event.getPlayer().getLevel());
    34. event.getPlayer().setScoreboard(scoreboard);
    35. }
    36. }
    37.  
    38. }
    39.  
    40. Still need help...
    41.  
    42. EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 7, 2016
  2. Offline

    TopTobster5

    I think you need to run event.getPlayer().setScoreboard(scoreboard); when the level increases as well.

    EDIT: read the code wrong sorry, you already are. Have you tried making the entire scoreboard again in when their level changes?
     
Thread Status:
Not open for further replies.

Share This Page