NullPointerException - getMcmmoValue for Scoreboard

Discussion in 'Plugin Development' started by Sicka_gp, Aug 6, 2013.

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

    Sicka_gp

    Hi, I getting this error message. Does anyone know how to fix it?
    The message is displayed only after login. Updater not reporting error.
    Thanks for any help

    Code:
    2013-08-06 20:09:56 [SEVERE] Could not pass event PlayerJoinEvent to ConfigurableMessages v0.7#Beta
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
        at net.minecraft.server.v1_6_R2.PlayerList.c(PlayerList.java:206)
        at net.minecraft.server.v1_6_R2.PlayerList.a(PlayerList.java:102)
        at net.minecraft.server.v1_6_R2.PendingConnection.e(PendingConnection.java:130)
        at net.minecraft.server.v1_6_R2.PendingConnection.d(PendingConnection.java:43)
        at net.minecraft.server.v1_6_R2.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:41)
        at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:29)
        at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:590)
        at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226)
        at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
        at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
        at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.NullPointerException
        at com.gmail.nossr50.api.ExperienceAPI.getPowerLevel(ExperienceAPI.java:389)
        at cz.Sicka_gp.ConfigurableMessages.Settings.ScoreboardItemsReplacer.getMcmmoItems(ScoreboardItemsReplacer.java:118)
        at cz.Sicka_gp.ConfigurableMessages.Settings.ScoreboardItemsReplacer.getReplacedInt(ScoreboardItemsReplacer.java:28)
        at cz.Sicka_gp.ConfigurableMessages.ScoreBoard.ScoreboardManager.UpdateScores(ScoreboardManager.java:81)
        at cz.Sicka_gp.ConfigurableMessages.ScoreBoard.ScoreboardManager.CreateSidebar(ScoreboardManager.java:50)
        at cz.Sicka_gp.ConfigurableMessages.ConfigurableMessagesListener.onPlayerJoin(ConfigurableMessagesListener.java:29)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        ... 14 more
    Code:java
    1. package cz.Sicka_gp.ConfigurableMessages;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.OfflinePlayer;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.EventPriority;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerJoinEvent;
    10. import org.bukkit.event.player.PlayerKickEvent;
    11. import org.bukkit.event.player.PlayerQuitEvent;
    12. import org.bukkit.inventory.ItemStack;
    13.  
    14. import cz.Sicka_gp.ConfigurableMessages.Settings.ConfMsfBooleanSetings;
    15. import cz.Sicka_gp.ConfigurableMessages.Settings.ConfMsfStringSetings;
    16.  
    17. public class ConfigurableMessagesListener implements Listener{
    18. public static ConfigurableMessages plugin;
    19. public ConfigurableMessagesListener(ConfigurableMessages instance) {
    20. plugin = instance;
    21. }
    22. ConfMsfBooleanSetings s = new ConfMsfBooleanSetings(ConfigurableMessages.getPlugin());
    23. ConfMsfStringSetings str = new ConfMsfStringSetings(ConfigurableMessages.getPlugin());
    24.  
    25. @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
    26. public void onPlayerJoin(PlayerJoinEvent e) {
    27. Player p = e.getPlayer();
    28. if(s.isSidebarEnable()){
    29. ConfigurableMessages.getPlugin().getScoreboardManager().CreateSidebar(p);
    30. }
    31. OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(p.getName());
    32. if(!(offlinePlayer.hasPlayedBefore())){
    33. if(s.isFirstMessageEnable()){
    34. for(Player pl : Bukkit.getServer().getOnlinePlayers()){
    35. if(pl.canSee(p)){
    36. String message = ConfMsfStringSetings.replacer(p, "Newbies.First-message");
    37. pl.sendMessage(message);
    38. }
    39. }
    40. }
    41. if(s.isKitsEnable()){
    42. setKits(p);
    43. }
    44. }
    45. if(s.isMessageEnable()){
    46. if(s.isMessageGroupEnable() && ConfigurableMessages.chat != null && ConfigurableMessages.permission != null){
    47. for(Player pl : Bukkit.getServer().getOnlinePlayers()){
    48. if(pl.canSee(p)){
    49. String jmessage = "Messages.Groups." + ConfigurableMessages.permission.getPrimaryGroup(p) + ".join-message";
    50. String message = ConfMsfStringSetings.replacer(p, jmessage);
    51. if(message != null){
    52. pl.sendMessage(message);
    53. }
    54. }
    55. }
    56. }else{
    57. for(Player pl : Bukkit.getServer().getOnlinePlayers()){
    58. if(pl.canSee(p)){
    59. String message = ConfMsfStringSetings.replacer(p, "Messages.Default.join-message");
    60. if(message != null){
    61. pl.sendMessage(message);
    62. }
    63. }
    64. }
    65. }
    66. }
    67. plugin.log.info("[ConfigurableMessages] " + p.getName() + " has join the game.");
    68. e.setJoinMessage(null);
    69. }
    70.  
    71.  
    72. @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
    73. public void onPlayerQuit(PlayerQuitEvent e){
    74. Player p = e.getPlayer();
    75. if(s.isSidebarEnable()){
    76. ConfigurableMessages.getPlugin().getScoreboardManager().RemoveSidebar(p);
    77. }
    78. if(s.isMessageEnable()){
    79. if(s.isMessageGroupEnable() && ConfigurableMessages.chat != null && ConfigurableMessages.permission != null){
    80. for(Player pl : Bukkit.getServer().getOnlinePlayers()){
    81. if(pl.canSee(p)){
    82. String jmessage = "Messages.Groups." + ConfigurableMessages.permission.getPrimaryGroup(p) + ".quit-message";
    83. String message = ConfMsfStringSetings.replacer(p, jmessage);
    84. if(message != null){
    85. pl.sendMessage(message);
    86. }
    87. }
    88. }
    89. }else{
    90. for(Player pl : Bukkit.getServer().getOnlinePlayers()){
    91. if(pl.canSee(p)){
    92. String message = ConfMsfStringSetings.replacer(p, "Messages.Default.quit-message");
    93. if(message != null){
    94. pl.sendMessage(message);
    95. }
    96. }
    97. }
    98. }
    99. }
    100. plugin.log.info("[ConfigurableMessages] " + p.getName() + " has quit the game.");
    101. e.setQuitMessage(null);
    102. }
    103.  
    104. @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
    105. public void onPlayerKick(PlayerKickEvent e){
    106. Player p = e.getPlayer();
    107. if(s.isSidebarEnable()){
    108. ConfigurableMessages.getPlugin().getScoreboardManager().RemoveSidebar(p);
    109. }
    110. if(s.isMessageEnable()){
    111. if(s.isMessageGroupEnable() && ConfigurableMessages.chat != null && ConfigurableMessages.permission != null){
    112. for(Player pl : Bukkit.getServer().getOnlinePlayers()){
    113. if(pl.canSee(p)){
    114. String jmessage = "Messages.Groups." + ConfigurableMessages.permission.getPrimaryGroup(p) + ".kick-message";
    115. String message = ConfMsfStringSetings.replacer(p, jmessage);
    116. if(message != null){
    117. pl.sendMessage(message);
    118. }
    119. }
    120. }
    121. }else{
    122. for(Player pl : Bukkit.getServer().getOnlinePlayers()){
    123. if(pl.canSee(p)){
    124. String message = ConfMsfStringSetings.replacer(p, "Messages.Default.kick-message");
    125. if(message != null){
    126. pl.sendMessage(message);
    127. }
    128. }
    129. }
    130. }
    131. }
    132. plugin.log.info("[ConfigurableMessages] " + p.getName() + " has quit the game.");
    133. e.setLeaveMessage(null);
    134. }
    135.  
    136. public void setKits(Player p){
    137. for(String item : plugin.getConfig().getStringList("Newbies.Items")){
    138. String[] itemdata = item.split("-",2);
    139. int id, amount, itemsdatabyte;
    140. String[] itemsdata = itemdata[0].split(":", 2);
    141. try{
    142. itemsdatabyte = Integer.parseInt(itemsdata[1]);
    143. id = Integer.parseInt(itemsdata[0]);
    144. amount = Integer.parseInt(itemdata[1]);
    145. p.getInventory().addItem(new ItemStack(id, amount, (byte)itemsdatabyte));
    146. }
    147. plugin.log.info("Incorrect item format '"+item+"', skipping!");
    148. }
    149. }
    150.  
    151.  
    152. }
    153. }

    Code:java
    1. package cz.Sicka_gp.ConfigurableMessages.ScoreBoard;
    2.  
    3. import java.util.HashMap;
    4. import java.util.Map;
    5. import java.util.Map.Entry;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.scoreboard.DisplaySlot;
    10. import org.bukkit.scoreboard.Objective;
    11.  
    12. import net.minecraft.server.v1_6_R2.Scoreboard;
    13. import net.minecraft.server.v1_6_R2.ScoreboardBaseCriteria;
    14. import net.minecraft.server.v1_6_R2.ScoreboardObjective;
    15. import cz.Sicka_gp.ConfigurableMessages.ConfigurableMessages;
    16. import cz.Sicka_gp.ConfigurableMessages.Settings.ScoreboardItemsReplacer;
    17.  
    18. public class ScoreboardManager {
    19. ConfigurableMessages plugin;
    20. Scoreboard sb = new Scoreboard();
    21. String name = "Sicka_gp";
    22. ScoreboardObjective so = new ScoreboardObjective(sb, name, new ScoreboardBaseCriteria(name));
    23. public Map<String, String> map = new HashMap<String,String>();
    24. public Map<String, String> ITEMS = new HashMap<String, String>(14);
    25.  
    26. public ScoreboardManager(ConfigurableMessages instance){
    27. this.plugin = instance;
    28. }
    29.  
    30. public void UnregisterSidebar(Player p){
    31. sb.unregisterObjective(sb.getObjective(name));
    32. sb.resetPlayerScores(name);
    33. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 0);
    34. ConfigurableMessages.getPlugin().log.info("Remove");
    35. }
    36.  
    37. public void CreateSidebar(Player p) {
    38. if(sb.getObjective(name) != null){
    39. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 0);
    40. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardDisplayObjective(p, name, ObjectiveDisplayPosition.SIDEBAR);
    41. ConfigurableMessages.getPlugin().log.info("update");
    42. UpdateScores(p);
    43. }else{
    44. ScoreboardObjective reg = sb.registerObjective(name, new ScoreboardBaseCriteria(name));
    45. if(reg != null){
    46. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 0);
    47. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardDisplayObjective(p, name, ObjectiveDisplayPosition.SIDEBAR);
    48. ConfigurableMessages.getPlugin().log.info("create");
    49. UpdateScores(p);
    50. }
    51. }
    52. }
    53.  
    54. public void RemoveSidebar(Player p){
    55. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 1);
    56. }
    57.  
    58. public void UpdateScores(Player p){
    59. for (Entry<String, String> e : ITEMS.entrySet()){
    60. String scorename = e.getKey();
    61. String scorevaule = e.getValue();
    62. ConfigurableMessages.getPlugin().log.info(scorename + "" + scorevaule);
    63. int scoresvaule = ScoreboardItemsReplacer.getReplacedInt(scorevaule, p);
    64. ConfigurableMessages.getPlugin().log.info(scorename + "" + scoresvaule);
    65. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardScore(p, scorename, name, scoresvaule, 0);
    66. }
    67. }
    68.  
    69. public void UpdateScoreBoard(Player p){
    70. if(sb.getObjective(name) != null){
    71. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 2);
    72. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardDisplayObjective(p, name, ObjectiveDisplayPosition.SIDEBAR);
    73. UpdateScores(p);
    74. }else{
    75. ScoreboardObjective reg = sb.registerObjective(name, new ScoreboardBaseCriteria(name));
    76. if(reg != null){
    77. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 2);
    78. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardDisplayObjective(p, name, ObjectiveDisplayPosition.SIDEBAR);
    79. UpdateScores(p);
    80. }
    81. }
    82. }
    83.  
    84. public void setupTimer(){
    85. Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(ConfigurableMessages.getPlugin(), new Runnable(){
    86.  
    87. @Override
    88. public void run(){
    89. for(Player p : Bukkit.getOnlinePlayers()){
    90. Objective objective = p.getScoreboard().getObjective(DisplaySlot.SIDEBAR);
    91. if(objective == null){
    92. if(!ConfigurableMessages.getPlugin().hide.contains(p.getName())){
    93. ConfigurableMessages.getPlugin().getScoreboardManager().UpdateScoreBoard(p);
    94. }
    95. continue;
    96. }else if (!objective.getName().endsWith("Sicka_gp")){
    97. continue;
    98. }else{
    99. ConfigurableMessages.getPlugin().getScoreboardManager().UpdateScoreBoard(p);
    100. }
    101. }
    102. }
    103. }, 0L, 5*20L);
    104.  
    105. }
    106.  
    107. }

    Code:java
    1. package cz.Sicka_gp.ConfigurableMessages.ScoreBoard;
    2.  
    3. import java.util.HashMap;
    4. import java.util.Map;
    5. import java.util.Map.Entry;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.scoreboard.DisplaySlot;
    10. import org.bukkit.scoreboard.Objective;
    11.  
    12. import net.minecraft.server.v1_6_R2.Scoreboard;
    13. import net.minecraft.server.v1_6_R2.ScoreboardBaseCriteria;
    14. import net.minecraft.server.v1_6_R2.ScoreboardObjective;
    15. import cz.Sicka_gp.ConfigurableMessages.ConfigurableMessages;
    16. import cz.Sicka_gp.ConfigurableMessages.Settings.ScoreboardItemsReplacer;
    17.  
    18. public class ScoreboardManager {
    19. ConfigurableMessages plugin;
    20. Scoreboard sb = new Scoreboard();
    21. String name = "Sicka_gp";
    22. ScoreboardObjective so = new ScoreboardObjective(sb, name, new ScoreboardBaseCriteria(name));
    23. public Map<String, String> map = new HashMap<String,String>();
    24. public Map<String, String> ITEMS = new HashMap<String, String>(14);
    25.  
    26. public ScoreboardManager(ConfigurableMessages instance){
    27. this.plugin = instance;
    28. }
    29.  
    30. public void UnregisterSidebar(Player p){
    31. sb.unregisterObjective(sb.getObjective(name));
    32. sb.resetPlayerScores(name);
    33. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 0);
    34. ConfigurableMessages.getPlugin().log.info("Remove");
    35. }
    36.  
    37. public void CreateSidebar(Player p) {
    38. if(sb.getObjective(name) != null){
    39. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 0);
    40. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardDisplayObjective(p, name, ObjectiveDisplayPosition.SIDEBAR);
    41. ConfigurableMessages.getPlugin().log.info("update");
    42. UpdateScores(p);
    43. }else{
    44. ScoreboardObjective reg = sb.registerObjective(name, new ScoreboardBaseCriteria(name));
    45. if(reg != null){
    46. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 0);
    47. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardDisplayObjective(p, name, ObjectiveDisplayPosition.SIDEBAR);
    48. ConfigurableMessages.getPlugin().log.info("create");
    49. UpdateScores(p);
    50. }
    51. }
    52. }
    53.  
    54. public void RemoveSidebar(Player p){
    55. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 1);
    56. }
    57.  
    58. public void UpdateScores(Player p){
    59. for (Entry<String, String> e : ITEMS.entrySet()){
    60. String scorename = e.getKey();
    61. String scorevaule = e.getValue();
    62. ConfigurableMessages.getPlugin().log.info(scorename + "" + scorevaule);
    63. int scoresvaule = ScoreboardItemsReplacer.getReplacedInt(scorevaule, p);
    64. ConfigurableMessages.getPlugin().log.info(scorename + "" + scoresvaule);
    65. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardScore(p, scorename, name, scoresvaule, 0);
    66. }
    67. }
    68.  
    69. public void UpdateScoreBoard(Player p){
    70. if(sb.getObjective(name) != null){
    71. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 2);
    72. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardDisplayObjective(p, name, ObjectiveDisplayPosition.SIDEBAR);
    73. UpdateScores(p);
    74. }else{
    75. ScoreboardObjective reg = sb.registerObjective(name, new ScoreboardBaseCriteria(name));
    76. if(reg != null){
    77. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardObjective(p, name, "Information", 2);
    78. ConfigurableMessages.getPlugin().getScoreBoardPacketManager().ScoreBoardDisplayObjective(p, name, ObjectiveDisplayPosition.SIDEBAR);
    79. UpdateScores(p);
    80. }
    81. }
    82. }
    83.  
    84. public void setupTimer(){
    85. Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(ConfigurableMessages.getPlugin(), new Runnable(){
    86.  
    87. @Override
    88. public void run(){
    89. for(Player p : Bukkit.getOnlinePlayers()){
    90. Objective objective = p.getScoreboard().getObjective(DisplaySlot.SIDEBAR);
    91. if(objective == null){
    92. if(!ConfigurableMessages.getPlugin().hide.contains(p.getName())){
    93. ConfigurableMessages.getPlugin().getScoreboardManager().UpdateScoreBoard(p);
    94. }
    95. continue;
    96. }else if (!objective.getName().endsWith("Sicka_gp")){
    97. continue;
    98. }else{
    99. ConfigurableMessages.getPlugin().getScoreboardManager().UpdateScoreBoard(p);
    100. }
    101. }
    102. }
    103. }, 0L, 5*20L);
    104.  
    105. }
    106.  
    107. }


    Source-Code: https://github.com/Sickagp/ConfigurableMessages
     
Thread Status:
Not open for further replies.

Share This Page