Development Assistance NPE Stack Trace Error

Discussion in 'Plugin Help/Development/Requests' started by Signatured, Feb 13, 2015.

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

    Signatured

    I've spent the past hour trying to figure out what's null, but I just can't seem to find it. I have a PlayerRespawnEvent, and I want it to open up an inventory gui when they respawn.

    EventHandler:
    Code:java
    1.  
    2. @EventHandler
    3. public void onPlayerRespawn(PlayerRespawnEvent e) {
    4. final Player player = e.getPlayer();
    5. if (player.hasPermission("sheriff.issheriff")) {
    6. Bukkit.getServer().getScheduler().runTaskLater(Sheriff.getInstance(), new Runnable() {
    7. public void run() {
    8. sheriffssinstance.showsheriff(player);
    9. ininv.add(player.getName());
    10. }
    11. }, 2);
    12. if (ininv.contains(e.getPlayer().getName())) {
    13. Bukkit.getServer().getScheduler().runTaskLater(Sheriff.getInstance(), new Runnable() {
    14. public void run() {
    15. sheriffssinstance.showsheriff(player);
    16. }
    17. }, 2);
    18. }
    19. }


    The error is on line 59, which is:
    Code:java
    1. sheriffssinstance.showsheriff(player);


    Stack Trace:
    Code:java
    1.  
    2. [00:40:34 WARN]: [Sheriff] Task #77694 for Sheriff v1.0 generated an exception
    3. at me.signatured.sheriff.SpawnSelectorEvents$3.run(SpawnSelectorEvents.j
    4. ava:59) ~[?:?]
    5. at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftTask.run(CraftTask.java
    6. :71) ~[spigot.jar:git-Spigot-13716d9-0899683]
    7. at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftScheduler.mainThreadHea
    8. rtbeat(CraftScheduler.java:350) [spigot.jar:git-Spigot-13716d9-0899683]
    9. at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:6
    10. 94) [spigot.jar:git-Spigot-13716d9-0899683]
    11. at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:3
    12. 16) [spigot.jar:git-Spigot-13716d9-0899683]
    13. at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:6
    14. 23) [spigot.jar:git-Spigot-13716d9-0899683]
    15. at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java
    16. :526) [spigot.jar:git-Spigot-13716d9-0899683]
    17. at java.lang.Thread.run(Unknown Source) [?:1.8.0_25]


    I understand that something is null. I just don't see what could be null. Here is my SheriffSpawnSelector class as well (where the sheriffshow method is from):
    Code:java
    1.  
    2. package me.signatured.sheriff;
    3.  
    4. import org.bukkit.Bukkit;
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.DyeColor;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.inventory.Inventory;
    9. import org.bukkit.inventory.ItemStack;
    10. import org.bukkit.inventory.meta.ItemMeta;
    11. import org.bukkit.material.Wool;
    12.  
    13. public class SheriffSpawnSelector {
    14.  
    15. SettingsManager settings = SettingsManager.getInstance();
    16. CommandManager cmdinstance = CommandManager.getInstance();
    17.  
    18. private static SheriffSpawnSelector ssinstance;
    19. private static Inventory inv;
    20. private ItemStack town1, town2, town3, town4;
    21.  
    22. public static Inventory getInv() {
    23. return inv;
    24. }
    25.  
    26. public SheriffSpawnSelector() {
    27. ssinstance = this;
    28.  
    29. inv = Bukkit.getServer().createInventory(null, 9, ChatColor.DARK_GREEN + "Choose a spawn location!");
    30.  
    31. town1 = createItem(DyeColor.GREEN, ChatColor.GREEN + "Town1");
    32. town2 = createItem(DyeColor.YELLOW, ChatColor.GREEN + "Town2");
    33. town3 = createItem(DyeColor.BLUE, ChatColor.GREEN + "Town3");
    34. town4 = createItem(DyeColor.RED, ChatColor.GREEN + "Town4");
    35.  
    36. inv.setItem(2, town1);
    37. inv.setItem(3, town2);
    38. inv.setItem(5, town3);
    39. inv.setItem(6, town4);
    40. }
    41.  
    42. private ItemStack createItem(DyeColor dc, String name) {
    43. ItemStack i = new Wool(dc).toItemStack(1);
    44. ItemMeta im = i.getItemMeta();
    45. im.setDisplayName(name);
    46. i.setItemMeta(im);
    47. return i;
    48. }
    49.  
    50. public void showsheriff(Player p) {
    51. p.openInventory(inv);
    52. }
    53.  
    54. public static SheriffSpawnSelector getInstance() {
    55. return ssinstance;
    56. }
    57.  
    58. }


    Anyone have any ideas? I've ran out.
     
  2. Offline

    Skionz

    sheriffssinstance is clearly null, but we won't know why until you post the entire class.
     
  3. Offline

    Signatured

    Full Class:
    Code:java
    1.  
    2. package me.signatured.sheriff;
    3.  
    4. import java.util.ArrayList;
    5.  
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.ChatColor;
    8. import org.bukkit.Material;
    9. import org.bukkit.entity.Player;
    10. import org.bukkit.event.EventHandler;
    11. import org.bukkit.event.Listener;
    12. import org.bukkit.event.inventory.InventoryClickEvent;
    13. import org.bukkit.event.inventory.InventoryCloseEvent;
    14. import org.bukkit.event.player.PlayerJoinEvent;
    15. import org.bukkit.event.player.PlayerRespawnEvent;
    16. import org.bukkit.inventory.Inventory;
    17.  
    18. public class SpawnSelectorEvents implements Listener {
    19.  
    20. private static ArrayList<String> ininv = new ArrayList<String>();
    21. Inventory inv = SpawnSelector.getInv();
    22. Inventory sinv = SheriffSpawnSelector.getInv();
    23. SpawnSelector ssinstance = SpawnSelector.getInstance();
    24. SheriffSpawnSelector sheriffssinstance = SheriffSpawnSelector.getInstance();
    25. ArrayList<String> inPrison = Prison.getInPrison();
    26.  
    27. public static ArrayList<String> getInInv() {
    28. return ininv;
    29. }
    30.  
    31. @EventHandler
    32. public void onPlayerRespawn(PlayerRespawnEvent e) {
    33. final Player player = e.getPlayer();
    34. if (player.hasPermission("sheriff.issheriff")) {
    35. Bukkit.getServer().getScheduler().runTaskLater(Sheriff.getInstance(), new Runnable() {
    36. public void run() {
    37. sheriffssinstance.showsheriff(player);
    38. ininv.add(player.getName());
    39. }
    40. }, 2);
    41. if (ininv.contains(e.getPlayer().getName())) {
    42. Bukkit.getServer().getScheduler().runTaskLater(Sheriff.getInstance(), new Runnable() {
    43. public void run() {
    44. sheriffssinstance.showsheriff(player);
    45. }
    46. }, 2);
    47. }
    48. }
    49.  
    50. if (player.hasPermission("sheriff.issheriff")) return;
    51. Bukkit.getServer().getScheduler().runTaskLater(Sheriff.getInstance(), new Runnable() {
    52. public void run() {
    53. if (inPrison.contains(player.getName())) return;
    54. ssinstance.showbandit(player);
    55. ininv.add(player.getName());
    56. }
    57. }, 2);
    58. if (ininv.contains(e.getPlayer().getName())) {
    59. Bukkit.getServer().getScheduler().runTaskLater(Sheriff.getInstance(), new Runnable() {
    60. public void run() {
    61. ssinstance.showbandit(player);
    62. }
    63. }, 2);
    64. }
    65. }
    66. }
     
  4. Online

    timtower Administrator Administrator Moderator

    Moved to Bukkit alternatives.
     
  5. Offline

    teej107

    @Signatured Are you sure the error is at the
    ?
    Because your stacktrace it pointing the error at this line
    Code:
    Bukkit.getServer().getScheduler().runTaskLater(Sheriff.getInstance(), new Runnable() {
    Are you sure your code hasn't been changed or messed up when you pasted it?
     
Thread Status:
Not open for further replies.

Share This Page