Help with scoreboards

Discussion in 'Plugin Development' started by BaconStripzMan, Jan 21, 2015.

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

    BaconStripzMan

    Hi, so I am making a kitpvp plugin (custom for my new network) and I was creating a scoreboard for kills and deaths and one day it stopped working..

    Code:java
    1.  
    2. @EventHandler
    3. public void onPlayerKill(PlayerDeathEvent e){
    4. Player p = e.getEntity().getKiller();
    5. org.bukkit.scoreboard.Scoreboard sb;
    6. Objective obj;
    7. ScoreboardManager sbManager = Bukkit.getScoreboardManager();
    8. sb = sbManager.getNewScoreboard();
    9. obj = sb.registerNewObjective("PizzaNetwork", "dummy");
    10. obj.setDisplaySlot(DisplaySlot.SIDEBAR);
    11. obj.setDisplayName("§6P§4i§6z§4z§6a §bNetwork");
    12. Score kills = obj.getScore(ChatColor.GREEN + "Kills:");
    13. kills.setScore(p.getStatistic(Statistic.PLAYER_KILLS));
    14. Score deaths = obj.getScore(ChatColor.GREEN + "Deaths:");
    15. deaths.setScore(p.getStatistic(Statistic.DEATHS));
    16. p.setScoreboard(sb);
    17. org.bukkit.scoreboard.Scoreboard sb1;
    18. Objective obj1;
    19. ScoreboardManager sb1Manager = Bukkit.getScoreboardManager();
    20. sb1 = sb1Manager.getNewScoreboard();
    21. obj1 = sb1.registerNewObjective("PizzaNetwork", "dummy");
    22. obj1.setDisplaySlot(DisplaySlot.SIDEBAR);
    23. obj1.setDisplayName("§6P§4i§6z§4z§6a §bNetwork");
    24. Score kills1 = obj1.getScore(ChatColor.GREEN + "Kills:");
    25. kills1.setScore(e.getEntity().getStatistic(Statistic.PLAYER_KILLS));
    26. Score deaths1 = obj1.getScore(ChatColor.GREEN + "Deaths:");
    27. deaths1.setScore(e.getEntity().getStatistic(Statistic.DEATHS));
    28. e.getEntity().setScoreboard(sb1);
    29. }

    And yes I have other events that work in the code so

    Console Error
    Code:
    [13:26:31 INFO]: BaconStripsMan died
    [13:26:32 ERROR]: Could not pass event PlayerDeathEvent to KitPvP v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:294) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.craftbukkit.v1_7_R3.event.CraftEventFactory.callPlayerDeat
    hEvent(CraftEventFactory.java:370) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g86
    88bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.EntityPlayer.die(EntityPlayer.java:373)
    [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.craftbukkit.v1_7_R3.entity.CraftLivingEntity.setHealth(Cra
    ftLivingEntity.java:85) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092
    jnks]
            at me.PizzaNetwork.KitPvP.Main.onWaterTouch(Main.java:56) [KitPvP.jar:?]
    
            at sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source) ~[?:?]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .8.0_25]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:292) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java
    :235) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.PacketPlayInFlying.a(SourceFile:137) [cr
    aftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.PacketPlayInPosition.handle(SourceFile:6
    3) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:157
    ) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134) [craf
    tbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:6
    67) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:2
    60) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:5
    58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java
    :469) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:6
    28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    Caused by: java.lang.NullPointerException
            at me.PizzaNetwork.KitPvP.Main.onPlayerKill(Main.java:157) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
    _25]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
    _25]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .8.0_25]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            ... 24 more
    
    Line 157:
    Code:java
    1.  
    2. kills.setScore(p.getStatistic(Statistic.PLAYER_KILLS));
    3.  


    EDIT by Timtower: merged posts
     
    Last edited by a moderator: Jan 23, 2015
  2. Make sure that kills is an integer & not null before adding it to the scoreboard.
     
  3. Offline

    1Rogue

    Don't create a brand new scoreboard every time, get their current scoreboard and verify that it's in the proper format before setting a new one, you'll save a lot of resources.
     
Thread Status:
Not open for further replies.

Share This Page