Null Pointer on Player Interact Event

Discussion in 'Plugin Development' started by maxben34, Dec 14, 2013.

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

    maxben34

    Player interact event throws a null pointer exception on line 31
    Code:java
    1. @EventHandler
    2. public void onInteract(PlayerInteractEvent e){
    3. ItemStack s = new ItemStack(Material.JACK_O_LANTERN);
    4. ItemMeta smeta = s.getItemMeta();
    5. smeta.setDisplayName(ChatColor.GOLD + "Show Players");
    6. List<String> slore = new ArrayList<String>();
    7. slore.add("Right cick this to");
    8. slore.add("open the match");
    9. slore.add("joining queue!");
    10. smeta.setLore(slore);
    11. s.setItemMeta(smeta);
    12.  
    13. ItemStack p = new ItemStack(Material.PUMPKIN);
    14. ItemMeta pmeta = p.getItemMeta();
    15. pmeta.setDisplayName(ChatColor.GOLD + "Hide Players");
    16. List<String> plore = new ArrayList<String>();
    17. plore.add("Right cick this to");
    18. plore.add("hide all players!");
    19. pmeta.setLore(plore);
    20. p.setItemMeta(pmeta);
    21.  
    22. ItemStack j = new ItemStack(Material.JACK_O_LANTERN);
    23. ItemMeta jmeta = j.getItemMeta();
    24. jmeta.setDisplayName(ChatColor.GOLD + "Show Players");
    25. List<String> jlore = new ArrayList<String>();
    26. jlore.add("Right cick this to");
    27. jlore.add("show all players!");
    28. jmeta.setLore(jlore);
    29. j.setItemMeta(jmeta);
    30. if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.LEFT_CLICK_BLOCK) {
    31. if (e.getItem().getType().equals(Material.MOB_SPAWNER)) {
    32. if(me.jackson30007.arenas.main.wood.contains(e.getPlayer())){
    33. e.getPlayer().openInventory(league);
    34. }
    35. else if(me.jackson30007.arenas.main.stone.contains(e.getPlayer())){
    36. e.getPlayer().openInventory(league1);
    37. }
    38. else if(me.jackson30007.arenas.main.iron.contains(e.getPlayer())){
    39. e.getPlayer().openInventory(league2);
    40. }
    41. else if(me.jackson30007.arenas.main.gold.contains(e.getPlayer())){
    42. e.getPlayer().openInventory(league3);
    43. }
    44. else if(me.jackson30007.arenas.main.diamond.contains(e.getPlayer())){
    45. e.getPlayer().openInventory(league4);
    46. }else{
    47. e.getPlayer().sendMessage(ChatColor.RED + "You are not in a valid league!");
    48. return;
    49. }
    50. }else
    51. if(e.getItem().getType().equals(Material.PUMPKIN)){
    52. for(Player pl : Bukkit.getOnlinePlayers()){
    53. e.getPlayer().hidePlayer(pl);
    54. }
    55. e.getPlayer().sendMessage("Hid Players");
    56. e.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS,30,10,true));
    57. e.getPlayer().getInventory().setItemInHand(j);
    58. me.jackson30007.arenas.main.hiden.add(e.getPlayer());
    59. }else
    60. if(e.getItem().getType().equals(Material.JACK_O_LANTERN)){
    61. for(Player pl : Bukkit.getOnlinePlayers()){
    62. e.getPlayer().showPlayer(pl);
    63. }
    64. e.getPlayer().sendMessage("Showing Players");
    65. e.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS,30,10,true));
    66. e.getPlayer().getInventory().setItemInHand(p);
    67. me.jackson30007.arenas.main.hiden.remove(e.getPlayer());
    68. }
    69.  
    70. if (e.getClickedBlock().getType().equals(Material.CHEST)) {
    71. e.setCancelled(true);
    72. }
    73. }
    74. }
     
  2. Offline

    TeeePeee

    Primitives need only be compared with (==), not .equals(). Regardless, the item must be null (e.getItem() == null).
     
  3. Offline

    sgavster

    use if(e.getPlayer().getItemInHand().getType()....) {
    and not e.getItem. :p
     
Thread Status:
Not open for further replies.

Share This Page