Couldn't pass PlayerInteractEvent

Discussion in 'Plugin Development' started by surferdude999, Jul 27, 2014.

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

    surferdude999

    Hello Bukkit community. I am in need of some assistance. For some reason, my PlayerInteractEvent is always throwing the same error all the time. I tried multiple ways to resolve the issue. All of which have failed. Please help me out.

    Error:
    Code:
    [13:14:38 ERROR]: Could not pass event PlayerInteractEvent to tHubMenu v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at org.bukkit.craftbukkit.v1_7_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:216) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at org.bukkit.craftbukkit.v1_7_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:186) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:605) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at net.minecraft.server.v1_7_R3.PacketPlayInBlockPlace.a(SourceFile:60) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at net.minecraft.server.v1_7_R3.PacketPlayInBlockPlace.handle(SourceFile:9) [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) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:667) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558) [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:628) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    Caused by: java.lang.NullPointerException
        at me.surferdude999.hubmenu.Main.openGUI(Main.java:80) ~[?:?]
        at me.surferdude999.hubmenu.Main.onPlayerInteract(Main.java:146) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_21]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_21]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_21]
        at java.lang.reflect.Method.invoke(Method.java:601) ~[?:1.7.0_21]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
        ... 15 more
    
    PlayerInteractEvent:
    Code:java
    1. @EventHandler
    2. public void onPlayerInteract(final PlayerInteractEvent e) {
    3. Action a = e.getAction();
    4. ItemStack is = e.getItem();
    5.  
    6. if (a == Action.PHYSICAL
    7. || is == null
    8. || is.getType() == Material.AIR)
    9. return;
    10.  
    11. if (is.getType().equals(Material.WATCH))
    12. openGUI(e.getPlayer());
    13. }
     
  2. Offline

    Niknea

  3. Offline

    hankered

    And line 80
     
  4. Offline

    ZodiacTheories

    Niknea

    Probably openGUI(), which he probably needs to call in his onEnable()
     
  5. Offline

    stormneo7

    Code:
        at me.surferdude999.hubmenu.Main.openGUI(Main.java:80) ~[?:?]
        at me.surferdude999.hubmenu.Main.onPlayerInteract(Main.java:146) ~[?:?]
    Line 146 is hi openGUI thing in the PlayerInteractEvent.
    The error occurs in the openGUI class, not the PlayerInteract.
    Could you show your openGUI code?
     
  6. Offline

    Iron_Crystal


    It's not a new class.

    openGUI is a method within the Main class.

    But yes, as the others say, we need to know the code so we can help you.

    You might as well post the entire Main class.
     
  7. Offline

    ZodiacTheories

    stormneo7

    onEnable() and the whole of the Main class please
     
  8. Offline

    surferdude999

    Here is the full class. Please don't judge. This was an experiment for me.

    Code:java
    1. package me.surferdude999.hubmenu;
    2.  
    3. import java.io.ByteArrayOutputStream;
    4. import java.io.DataOutputStream;
    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.block.Action;
    13. import org.bukkit.event.inventory.InventoryClickEvent;
    14. import org.bukkit.event.player.PlayerInteractEvent;
    15. import org.bukkit.event.player.PlayerJoinEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.inventory.meta.ItemMeta;
    19. import org.bukkit.plugin.java.JavaPlugin;
    20.  
    21. public class Main extends JavaPlugin implements Listener {
    22.  
    23. public void onEnable() {
    24. getConfig().options().copyDefaults(true);
    25. saveConfig();
    26. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    27. }
    28.  
    29. public void openGUI(Player player) {
    30. Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_AQUA + "Select a hub...");
    31. if (getConfig().getString("current").equalsIgnoreCase(null)) {
    32.  
    33. ItemStack hub1 = new ItemStack(Material.GOLD_BLOCK);
    34. ItemMeta hub1Meta = hub1.getItemMeta();
    35. hub1Meta.setDisplayName(ChatColor.RED + "Hub 1");
    36. hub1.setItemMeta(hub1Meta);
    37.  
    38. ItemStack hub2 = new ItemStack(Material.GOLD_BLOCK);
    39. ItemMeta hub2Meta = hub2.getItemMeta();
    40. hub2Meta.setDisplayName(ChatColor.GREEN + "Hub 2");
    41. hub2.setItemMeta(hub2Meta);
    42.  
    43. ItemStack hub3 = new ItemStack(Material.GOLD_BLOCK);
    44. ItemMeta hub3Meta = hub3.getItemMeta();
    45. hub3Meta.setDisplayName(ChatColor.GREEN + "Hub 3");
    46. hub3.setItemMeta(hub3Meta);
    47.  
    48. inv.setItem(0, hub1);
    49. inv.setItem(1, hub2);
    50. inv.setItem(2, hub3);
    51.  
    52. player.openInventory(inv);
    53. } else {
    54.  
    55.  
    56. if (getConfig().getString("current").equalsIgnoreCase("hub2")) {
    57.  
    58. ItemStack hub11 = new ItemStack(Material.GOLD_BLOCK);
    59. ItemMeta hub11Meta = hub11.getItemMeta();
    60. hub11Meta.setDisplayName(ChatColor.GREEN + "Hub 1");
    61. hub11.setItemMeta(hub11Meta);
    62.  
    63. ItemStack hub21 = new ItemStack(Material.DIAMOND_BLOCK);
    64. ItemMeta hub21Meta = hub21.getItemMeta();
    65. hub21Meta.setDisplayName(ChatColor.RED + "Hub 2");
    66. hub21.setItemMeta(hub21Meta);
    67.  
    68. ItemStack hub31 = new ItemStack(Material.GOLD_BLOCK);
    69. ItemMeta hub31Meta = hub31.getItemMeta();
    70. hub31Meta.setDisplayName(ChatColor.GREEN + "Hub 3");
    71. hub31.setItemMeta(hub31Meta);
    72.  
    73. inv.setItem(0, hub11);
    74. inv.setItem(1, hub21);
    75. inv.setItem(2, hub31);
    76.  
    77. player.openInventory(inv);
    78. } else {
    79.  
    80. if (getConfig().getString("curent").equalsIgnoreCase("hub3")) {
    81.  
    82.  
    83. ItemStack hub1 = new ItemStack(Material.GOLD_BLOCK);
    84. ItemMeta hub1Meta = hub1.getItemMeta();
    85. hub1Meta.setDisplayName(ChatColor.GREEN + "Hub 1");
    86. hub1.setItemMeta(hub1Meta);
    87.  
    88. ItemStack hub2 = new ItemStack(Material.GOLD_BLOCK);
    89. ItemMeta hub2Meta = hub2.getItemMeta();
    90. hub2Meta.setDisplayName(ChatColor.GREEN + "Hub 2");
    91. hub2.setItemMeta(hub2Meta);
    92.  
    93. ItemStack hub3 = new ItemStack(Material.DIAMOND_BLOCK);
    94. ItemMeta hub3Meta = hub3.getItemMeta();
    95. hub3Meta.setDisplayName(ChatColor.RED + "Hub 3");
    96. hub3.setItemMeta(hub3Meta);
    97.  
    98. inv.setItem(0, hub1);
    99. inv.setItem(1, hub2);
    100. inv.setItem(2, hub3);
    101.  
    102. player.openInventory(inv);
    103. } else {
    104.  
    105. if (getConfig().getString("current").equalsIgnoreCase("hub1")) {
    106.  
    107. ItemStack hub1 = new ItemStack(Material.DIAMOND_BLOCK);
    108. ItemMeta hub1Meta = hub1.getItemMeta();
    109. hub1Meta.setDisplayName(ChatColor.RED + "Hub 1");
    110. hub1.setItemMeta(hub1Meta);
    111.  
    112. ItemStack hub2 = new ItemStack(Material.GOLD_BLOCK);
    113. ItemMeta hub2Meta = hub2.getItemMeta();
    114. hub2Meta.setDisplayName(ChatColor.GREEN + "Hub 2");
    115. hub2.setItemMeta(hub2Meta);
    116.  
    117. ItemStack hub3 = new ItemStack(Material.GOLD_BLOCK);
    118. ItemMeta hub3Meta = hub3.getItemMeta();
    119. hub3Meta.setDisplayName(ChatColor.GREEN + "Hub 3");
    120. hub3.setItemMeta(hub3Meta);
    121.  
    122. inv.setItem(0, hub1);
    123. inv.setItem(1, hub2);
    124. inv.setItem(2, hub3);
    125.  
    126. player.openInventory(inv);
    127. }
    128. player.openInventory(inv);
    129.  
    130. }
    131. }
    132. }
    133. }
    134.  
    135. @EventHandler
    136. public void onPlayerInteract(final PlayerInteractEvent e) {
    137. Action a = e.getAction();
    138. ItemStack is = e.getItem();
    139.  
    140. if (a == Action.PHYSICAL
    141. || is == null
    142. || is.getType() == Material.AIR)
    143. return;
    144.  
    145. if (is.getType().equals(Material.WATCH))
    146. openGUI(e.getPlayer());
    147. }
    148.  
    149. @EventHandler
    150. public void onInventoryClick(InventoryClickEvent e) {
    151. if (!ChatColor.stripColor(e.getInventory().getName()).equalsIgnoreCase("Select a hub..."))
    152. return;
    153.  
    154. Player p = (Player) e.getWhoClicked();
    155. e.setCancelled(true);
    156.  
    157. if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR || !e.getCurrentItem().hasItemMeta()) {
    158. p.closeInventory();
    159. return;
    160. }
    161.  
    162. switch (e.getCurrentItem().getType()) {
    163. case GOLD_BLOCK:
    164.  
    165. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GREEN + "Hub 1")) {
    166. p.sendMessage(ChatColor.GOLD + "Teleporting to Hub 1...");
    167. try {
    168. out.writeUTF("Connect");
    169. out.writeUTF("hub");
    170. p.closeInventory();
    171. } catch (Exception ex) {
    172. ex.printStackTrace();
    173. }
    174. p.sendPluginMessage(this, "BungeeCord", b.toByteArray());
    175. } else {
    176.  
    177. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GREEN + "Hub 2")) {
    178. p.sendMessage(ChatColor.GOLD + "Teleporting to Hub 2...");
    179. try {
    180. out.writeUTF("Connect");
    181. out.writeUTF("hub2");
    182. p.closeInventory();
    183. } catch (Exception ex) {
    184. ex.printStackTrace();
    185. }
    186. p.sendPluginMessage(this, "BungeeCord", b.toByteArray());
    187. } else {
    188.  
    189. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GREEN + "Hub 3")) {
    190. p.sendMessage(ChatColor.GOLD + "Teleporting to Hub 3...");
    191. try {
    192. out.writeUTF("Connect");
    193. out.writeUTF("hub3");
    194. p.closeInventory();
    195. } catch (Exception ex) {
    196. ex.printStackTrace();
    197. }
    198. p.sendPluginMessage(this, "BungeeCord", b.toByteArray());
    199. }
    200. }
    201. }
    202. break;
    203.  
    204. case DIAMOND_BLOCK:
    205. p.sendMessage(ChatColor.RED + "You are already in this hub!");
    206. p.closeInventory();
    207. break;
    208.  
    209. default:
    210. p.closeInventory();
    211. break;
    212. }
    213. }
    214.  
    215. @EventHandler
    216. public void onPlayerJoin(PlayerJoinEvent e) {
    217. ItemStack hubs = new ItemStack(Material.WATCH);
    218. ItemMeta hubsMeta = hubs.getItemMeta();
    219. hubsMeta.setDisplayName(String.format("%s%sHub Selector", ChatColor.GOLD, ChatColor.BOLD));
    220. hubs.setItemMeta(hubsMeta);
    221. e.getPlayer().getInventory().setItem(8, hubs);
    222. }
    223. }
    224.  
    225.  
    226.  
    227.  
     
  9. Offline

    ZodiacTheories

  10. Offline

    fireblast709

    ZodiacTheories wat... No.
    surferdude999 the path 'curent' does not exist in your config. Probably a typo as the others use 'current'
     
  11. Offline

    surferdude999

    Oh wow, I feel like an idiot now. Thanks.
     
  12. Offline

    ZodiacTheories

Thread Status:
Not open for further replies.

Share This Page