PlayerClickEvent Failed [Help Needed]

Discussion in 'Plugin Development' started by Squid_Boss, Jul 26, 2013.

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

    Squid_Boss

    Hi, making an inventory type plugin, and I can't understand why my PlayerClickEvent isn't working properly. The plugin loads up completely fine; without any errors. Here is my code:

    Main Class:
    Show Spoiler

    Code:java
    1. package me.squidboss.menuinv;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.command.Command;
    5. import org.bukkit.command.CommandSender;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.block.Action;
    10. import org.bukkit.event.player.PlayerInteractEvent;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13.  
    14. public class MenuInv extends JavaPlugin implements Listener {
    15.  
    16. private Menu1 menu1;
    17. private Menu2 menu2;
    18.  
    19. public void onEnable() {
    20. menu1 = new Menu1(this);
    21. menu2 = new Menu2(this);
    22. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    23. }
    24.  
    25. @EventHandler
    26. public void onPlayerInteract(PlayerInteractEvent e) {
    27. if (!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    28. menu1.show(e.getPlayer());
    29. }
    30. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    31. if (cmd.getName().equalsIgnoreCase("upgrademenu")) {
    32. Player p = (Player) sender;
    33. menu2.show1(p);
    34. return true;
    35. }
    36. return true;
    37. }
    38. }
    39.  


    First Menu class:
    Show Spoiler

    Code:java
    1. package me.squidboss.menuinv;
    2.  
    3. import java.util.Arrays;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.Material;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.event.EventHandler;
    10. import org.bukkit.event.Listener;
    11. import org.bukkit.event.inventory.InventoryClickEvent;
    12. import org.bukkit.inventory.Inventory;
    13. import org.bukkit.inventory.ItemStack;
    14. import org.bukkit.inventory.meta.ItemMeta;
    15. import org.bukkit.plugin.Plugin;
    16. import org.bukkit.potion.Potion;
    17. import org.bukkit.potion.PotionType;
    18.  
    19. public class Menu1 implements Listener{
    20.  
    21. private Menu2 menu2;
    22.  
    23. // Names Inventory and Inventory Items
    24. private Inventory inv;
    25. private ItemStack knight, scout, medic, wizard, spy, pyro, border, upgrade;
    26.  
    27. public Menu1(Plugin p) {
    28.  
    29. // Inventory itself
    30. Potion healthpotion = new Potion(PotionType.REGEN).splash();
    31. inv = Bukkit.getServer().createInventory(null, 27, ChatColor.DARK_BLUE + "" + ChatColor.BOLD + "Kit Selector");
    32.  
    33. knight = createItem(Material.IRON_SWORD, ChatColor.GRAY + "Knight");
    34. scout = createItem(Material.BOW, ChatColor.DARK_GREEN + "Scout");
    35. medic = createItem(healthpotion, ChatColor.LIGHT_PURPLE + "Medic");
    36. wizard = createItem(Material.BLAZE_ROD, ChatColor.DARK_BLUE + "Wizard");
    37. spy = createItem(Material.DIAMOND_SWORD, ChatColor.WHITE + "Spy");
    38. pyro = createItem(Material.FIRE, ChatColor.GOLD + "Pyro");
    39. border = createItem(Material.IRON_FENCE, ChatColor.GREEN + "VIP Only");
    40. // Upgrade
    41. upgrade = createItem(Material.EXP_BOTTLE, ChatColor.GREEN + "Upgrades", ChatColor.DARK_PURPLE + "Click for the", ChatColor.DARK_PURPLE + "upgrade store.");
    42.  
    43. // Item Positions
    44. inv.setItem(1, knight);
    45. inv.setItem(2, scout);
    46. inv.setItem(3, medic);
    47. inv.setItem(4, wizard);
    48. inv.setItem(6, spy);
    49. inv.setItem(7, pyro);
    50. // Bordering
    51. inv.setItem(5, border);
    52. inv.setItem(14, border);
    53. inv.setItem(23, border);
    54. // Upgrade
    55. inv.setItem(22, upgrade);
    56.  
    57.  
    58. // Registry of events
    59. Bukkit.getServer().getPluginManager().registerEvents(this, p);
    60. }
    61.  
    62. // Item Names and Lore Registry
    63. private ItemStack createItem(Potion healthpotion, String name, String... lore) {
    64. ItemStack i = new ItemStack(healthpotion.toItemStack(1));
    65. ItemMeta im = i.getItemMeta();
    66. im.setDisplayName(name);
    67. im.setLore(Arrays.asList(lore));
    68. i.setItemMeta(im);
    69. return i;
    70. }
    71. private ItemStack createItem(Material mat, String name, String... lore) {
    72. ItemStack i = new ItemStack(mat);
    73. ItemMeta im = i.getItemMeta();
    74. im.setDisplayName(name);
    75. im.setLore(Arrays.asList(lore));
    76. i.setItemMeta(im);
    77. return i;
    78. }
    79. // Opens inventory
    80. public void show(Player p) {
    81. p.openInventory(inv);
    82. }
    83. @EventHandler
    84. public void onInventoryClick(InventoryClickEvent e) {
    85. Player p = (Player) e.getWhoClicked();
    86.  
    87. // What happens when you click
    88. if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
    89. if (e.getCurrentItem().getItemMeta() == null) return;
    90.  
    91. // INV Main Items
    92. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Knight")) {
    93. e.setCancelled(true);
    94. p.sendMessage("You chose Knight!");
    95. }
    96. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Scout")) {
    97. e.setCancelled(true);
    98. p.sendMessage("You chose Scout!");
    99. }
    100. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Medic")) {
    101. e.setCancelled(true);
    102. p.sendMessage("You chose Medic!");
    103. }
    104. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Wizard")) {
    105. e.setCancelled(true);
    106. p.sendMessage("You chose Wizard!");
    107. }
    108. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Spy")) {
    109. e.setCancelled(true);
    110. p.sendMessage("You chose Spy!");
    111. }
    112. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Pyro")) {
    113. e.setCancelled(true);
    114. p.sendMessage("You chose Pyro!");
    115. }
    116. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("VIP Only")) {
    117. e.setCancelled(true);
    118. }
    119. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Upgrades")) {
    120. e.setCancelled(true);
    121. e.getWhoClicked().closeInventory();
    122. menu2.show1(p);
    123. }
    124. }
    125. }


    Second Menu Class:
    Show Spoiler

    Code:java
    1. package me.squidboss.menuinv;
    2.  
    3. import java.util.Arrays;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.Material;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.event.EventHandler;
    10. import org.bukkit.event.Listener;
    11. import org.bukkit.event.inventory.InventoryClickEvent;
    12. import org.bukkit.inventory.Inventory;
    13. import org.bukkit.inventory.ItemStack;
    14. import org.bukkit.inventory.meta.ItemMeta;
    15. import org.bukkit.plugin.Plugin;
    16. import org.bukkit.potion.Potion;
    17. import org.bukkit.potion.PotionType;
    18.  
    19. public class Menu2 implements Listener{
    20.  
    21. // Names Inventory and Inventory Items
    22. private Inventory inv1;
    23. private ItemStack knight, scout, medic, wizard, spy, pyro, knight1, knight2, knight3, knight4, knight5, scout1, scout2, scout3, scout4, scout5, medic1, medic2, medic3, medic4, medic5, wizard1, wizard2, wizard3, wizard4, wizard5, spy1, spy2, spy3, spy4, spy5, pyro1, pyro2, pyro3, pyro4, pyro5;
    24.  
    25. public Menu2(Plugin p) {
    26. // Inventory itself
    27. Potion healthpotion = new Potion(PotionType.REGEN).splash();
    28.  
    29. inv1 = Bukkit.getServer().createInventory(null, 54, ChatColor.GOLD + "" + ChatColor.BOLD + "Upgrade Store");
    30.  
    31. // Main Items and their names
    32. knight = createItem(Material.IRON_SWORD, ChatColor.GRAY + "Knight" + ChatColor.GREEN + " Upgrades");
    33. scout = createItem(Material.BOW, ChatColor.DARK_GREEN + "Scout" + ChatColor.GREEN + " Upgrades");
    34. medic = createItem(healthpotion, ChatColor.LIGHT_PURPLE + "Medic" + ChatColor.GREEN + " Upgrades");
    35. wizard = createItem(Material.BLAZE_ROD, ChatColor.DARK_BLUE + "Wizard" + ChatColor.GREEN + " Upgrades");
    36. spy = createItem(Material.DIAMOND_SWORD, ChatColor.WHITE + "Spy"+ ChatColor.GREEN + " Upgrades");
    37. pyro = createItem(Material.FIRE, ChatColor.GOLD + "Pyro" + ChatColor.GREEN + " Upgrades");
    38.  
    39. // Upgrade Items and their names
    40. knight1 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.GRAY + "Knight " + ChatColor.GREEN + "Upgrade #1", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    41. knight2 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.GRAY + "Knight " + ChatColor.GREEN + "Upgrade #2", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    42. knight3 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.GRAY + "Knight " + ChatColor.GREEN + "Upgrade #3", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    43. knight4 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.GRAY + "Knight " + ChatColor.GREEN + "Upgrade #4", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    44. knight5 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.GRAY + "Knight " + ChatColor.GREEN + "Upgrade #5", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    45.  
    46. scout1 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.DARK_GREEN + "Scout " + ChatColor.GREEN + "Upgrade #1", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    47. scout2 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.DARK_GREEN + "Scout " + ChatColor.GREEN + "Upgrade #2", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    48. scout3 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.DARK_GREEN + "Scout " + ChatColor.GREEN + "Upgrade #3", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    49. scout4 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.DARK_GREEN + "Scout " + ChatColor.GREEN + "Upgrade #4", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    50. scout5 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.DARK_GREEN + "Scout " + ChatColor.GREEN + "Upgrade #5", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    51.  
    52. medic1 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.LIGHT_PURPLE + "Medic " + ChatColor.GREEN + "Upgrade #1", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    53. medic2 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.LIGHT_PURPLE + "Medic " + ChatColor.GREEN + "Upgrade #2", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    54. medic3 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.LIGHT_PURPLE + "Medic " + ChatColor.GREEN + "Upgrade #3", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    55. medic4 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.LIGHT_PURPLE + "Medic " + ChatColor.GREEN + "Upgrade #4", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    56. medic5 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.LIGHT_PURPLE + "Medic " + ChatColor.GREEN + "Upgrade #5", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    57.  
    58. wizard1 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.DARK_BLUE + "Wizard " + ChatColor.GREEN + "Upgrade #1", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    59. wizard2 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.DARK_BLUE + "Wizard " + ChatColor.GREEN + "Upgrade #2", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    60. wizard3 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.DARK_BLUE + "Wizard " + ChatColor.GREEN + "Upgrade #3", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    61. wizard4 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.DARK_BLUE + "Wizard " + ChatColor.GREEN + "Upgrade #4", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    62. wizard5 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.DARK_BLUE + "Wizard " + ChatColor.GREEN + "Upgrade #5", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    63.  
    64. spy1 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.WHITE + "Spy " + ChatColor.GREEN + "Upgrade #1", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    65. spy2 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.WHITE + "Spy " + ChatColor.GREEN + "Upgrade #2", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    66. spy3 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.WHITE + "Spy " + ChatColor.GREEN + "Upgrade #3", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    67. spy4 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.WHITE + "Spy " + ChatColor.GREEN + "Upgrade #4", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    68. spy5 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.WHITE + "Spy " + ChatColor.GREEN + "Upgrade #5", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    69.  
    70. pyro1 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.GOLD + "Pyro " + ChatColor.GREEN + "Upgrade #1", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    71. pyro2 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.GOLD + "Pyro " + ChatColor.GREEN + "Upgrade #2", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    72. pyro3 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.GOLD + "Pyro " + ChatColor.GREEN + "Upgrade #3", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    73. pyro4 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.GOLD + "Pyro " + ChatColor.GREEN + "Upgrade #4", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    74. pyro5 = createItem(Material.REDSTONE_LAMP_OFF, ChatColor.GOLD + "Pyro " + ChatColor.GREEN + "Upgrade #5", ChatColor.DARK_RED + "Price: $", ChatColor.DARK_PURPLE + "Click to upgrade");
    75.  
    76. // Item Positions
    77. inv1.setItem(1, knight);
    78. inv1.setItem(10, scout);
    79. inv1.setItem(19, medic);
    80. inv1.setItem(28, wizard);
    81. inv1.setItem(37, spy);
    82. inv1.setItem(46, pyro);
    83.  
    84. inv1.setItem(3, knight1);
    85. inv1.setItem(4, knight2);
    86. inv1.setItem(5, knight3);
    87. inv1.setItem(6, knight4);
    88. inv1.setItem(7, knight5);
    89.  
    90. inv1.setItem(12, scout1);
    91. inv1.setItem(13, scout2);
    92. inv1.setItem(14, scout3);
    93. inv1.setItem(15, scout4);
    94. inv1.setItem(16, scout5);
    95.  
    96. inv1.setItem(21, medic1);
    97. inv1.setItem(22, medic2);
    98. inv1.setItem(23, medic3);
    99. inv1.setItem(24, medic4);
    100. inv1.setItem(25, medic5);
    101.  
    102. inv1.setItem(30, wizard1);
    103. inv1.setItem(31, wizard2);
    104. inv1.setItem(32, wizard3);
    105. inv1.setItem(33, wizard4);
    106. inv1.setItem(34, wizard5);
    107.  
    108. inv1.setItem(39, spy1);
    109. inv1.setItem(40, spy2);
    110. inv1.setItem(41, spy3);
    111. inv1.setItem(42, spy4);
    112. inv1.setItem(43, spy5);
    113.  
    114. inv1.setItem(48, pyro1);
    115. inv1.setItem(49, pyro2);
    116. inv1.setItem(50, pyro3);
    117. inv1.setItem(51, pyro4);
    118. inv1.setItem(52, pyro5);
    119.  
    120. // Registry of events
    121. Bukkit.getServer().getPluginManager().registerEvents(this, p);
    122. }
    123.  
    124. // Item Names and Lore Registry
    125. private ItemStack createItem(Potion healthpotion, String name, String... lore) {
    126. ItemStack i = new ItemStack(healthpotion.toItemStack(1));
    127. ItemMeta im = i.getItemMeta();
    128. im.setDisplayName(name);
    129. im.setLore(Arrays.asList(lore));
    130. i.setItemMeta(im);
    131. return i;
    132. }
    133. private ItemStack createItem(Material mat, String name, String... lore) {
    134. ItemStack i = new ItemStack(mat);
    135. ItemMeta im = i.getItemMeta();
    136. im.setDisplayName(name);
    137. im.setLore(Arrays.asList(lore));
    138. i.setItemMeta(im);
    139. return i;
    140. }
    141. // Opens inventory
    142. public void show1(Player p) {
    143. p.openInventory(inv1);
    144. }
    145. @EventHandler
    146. public void onInventoryClick(InventoryClickEvent e) {
    147. Player p = (Player) e.getWhoClicked();
    148.  
    149. // What happens when you click
    150. if (!e.getInventory().getName().equalsIgnoreCase(inv1.getName())) return;
    151. if (e.getCurrentItem().getItemMeta() == null) return;
    152.  
    153. // Main Items
    154. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Knight Upgrades")) {
    155. e.setCancelled(true);
    156. }
    157. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Scout Upgrades")) {
    158. e.setCancelled(true);
    159. }
    160. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Medic Upgrades")) {
    161. e.setCancelled(true);
    162. }
    163. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Wizard Upgrades")) {
    164. e.setCancelled(true);
    165. }
    166. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Spy Upgrades")) {
    167. e.setCancelled(true);
    168. }
    169. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Pyro Upgrades")) {
    170. e.setCancelled(true);
    171. }
    172.  
    173. // Upgrade Items
    174. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Knight Upgrade #1")) {
    175. e.setCancelled(true);
    176. e.getWhoClicked().closeInventory();
    177. p.sendMessage("Knight Success!");
    178. }
    179. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Knight Upgrade #2")) {
    180. e.setCancelled(true);
    181. e.getWhoClicked().closeInventory();
    182. p.sendMessage("Knight Success!");
    183. }
    184. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Knight Upgrade #3")) {
    185. e.setCancelled(true);
    186. e.getWhoClicked().closeInventory();
    187. p.sendMessage("Knight Success!");
    188. }
    189. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Knight Upgrade #4")) {
    190. e.setCancelled(true);
    191. e.getWhoClicked().closeInventory();
    192. p.sendMessage("Knight Success!");
    193. }
    194. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Knight Upgrade #5")) {
    195. e.setCancelled(true);
    196. e.getWhoClicked().closeInventory();
    197. p.sendMessage("Knight Success!");
    198. }
    199.  
    200. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Scout Upgrade #1")) {
    201. e.setCancelled(true);
    202. e.getWhoClicked().closeInventory();
    203. p.sendMessage("Scout Success!");
    204. }
    205. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Scout Upgrade #2")) {
    206. e.setCancelled(true);
    207. e.getWhoClicked().closeInventory();
    208. p.sendMessage("Scout Success!");
    209. }
    210. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Scout Upgrade #3")) {
    211. e.setCancelled(true);
    212. e.getWhoClicked().closeInventory();
    213. p.sendMessage("Scout Success!");
    214. }
    215. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Scout Upgrade #4")) {
    216. e.setCancelled(true);
    217. e.getWhoClicked().closeInventory();
    218. p.sendMessage("Scout Success!");
    219. }
    220. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Scout Upgrade #5")) {
    221. e.setCancelled(true);
    222. e.getWhoClicked().closeInventory();
    223. p.sendMessage("Scout Success!");
    224. }
    225.  
    226. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Medic Upgrade #1")) {
    227. e.setCancelled(true);
    228. e.getWhoClicked().closeInventory();
    229. p.sendMessage("Medic Success!");
    230. }
    231. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Medic Upgrade #2")) {
    232. e.setCancelled(true);
    233. e.getWhoClicked().closeInventory();
    234. p.sendMessage("Medic Success!");
    235. }
    236. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Medic Upgrade #3")) {
    237. e.setCancelled(true);
    238. e.getWhoClicked().closeInventory();
    239. p.sendMessage("Medic Success!");
    240. }
    241. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Medic Upgrade #4")) {
    242. e.setCancelled(true);
    243. e.getWhoClicked().closeInventory();
    244. p.sendMessage("Medic Success!");
    245. }
    246. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Medic Upgrade #5")) {
    247. e.setCancelled(true);
    248. e.getWhoClicked().closeInventory();
    249. p.sendMessage("Medic Success!");
    250. }
    251.  
    252. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Wizard Upgrade #1")) {
    253. e.setCancelled(true);
    254. e.getWhoClicked().closeInventory();
    255. p.sendMessage("Wizard Success!");
    256. }
    257. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Wizard Upgrade #2")) {
    258. e.setCancelled(true);
    259. e.getWhoClicked().closeInventory();
    260. p.sendMessage("Wizard Success!");
    261. }
    262. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Wizard Upgrade #3")) {
    263. e.setCancelled(true);
    264. e.getWhoClicked().closeInventory();
    265. p.sendMessage("Wizard Success!");
    266. }
    267. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Wizard Upgrade #4")) {
    268. e.setCancelled(true);
    269. e.getWhoClicked().closeInventory();
    270. p.sendMessage("Wizard Success!");
    271. }
    272. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Wizard Upgrade #5")) {
    273. e.setCancelled(true);
    274. e.getWhoClicked().closeInventory();
    275. p.sendMessage("Wizard Success!");
    276. }
    277.  
    278. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Spy Upgrade #1")) {
    279. e.setCancelled(true);
    280. e.getWhoClicked().closeInventory();
    281. p.sendMessage("Spy Success!");
    282. }
    283. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Spy Upgrade #2")) {
    284. e.setCancelled(true);
    285. e.getWhoClicked().closeInventory();
    286. p.sendMessage("Spy Success!");
    287. }
    288. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Spy Upgrade #3")) {
    289. e.setCancelled(true);
    290. e.getWhoClicked().closeInventory();
    291. p.sendMessage("Spy Success!");
    292. }
    293. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Spy Upgrade #4")) {
    294. e.setCancelled(true);
    295. e.getWhoClicked().closeInventory();
    296. p.sendMessage("Spy Success!");
    297. }
    298. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Spy Upgrade #5")) {
    299. e.setCancelled(true);
    300. e.getWhoClicked().closeInventory();
    301. p.sendMessage("Spy Success!");
    302. }
    303.  
    304. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Pyro Upgrade #1")) {
    305. e.setCancelled(true);
    306. e.getWhoClicked().closeInventory();
    307. p.sendMessage("Pyro Success!");
    308. }
    309. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Pyro Upgrade #2")) {
    310. e.setCancelled(true);
    311. e.getWhoClicked().closeInventory();
    312. p.sendMessage("Pyro Success!");
    313. }
    314. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Pyro Upgrade #3")) {
    315. e.setCancelled(true);
    316. e.getWhoClicked().closeInventory();
    317. p.sendMessage("Pyro Success!");
    318. }
    319. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Pyro Upgrade #4")) {
    320. e.setCancelled(true);
    321. e.getWhoClicked().closeInventory();
    322. p.sendMessage("Pyro Success!");
    323. }
    324. if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Pyro Upgrade #5")) {
    325. e.setCancelled(true);
    326. e.getWhoClicked().closeInventory();
    327. p.sendMessage("Pyro Success!");
    328. }
    329. }
    330. }
    331.  


    Because the PlayerClickEvent wasn't working, I created a command to load up the second inventory (Which should be triggered by selecting a certain item in the first inventory), and the second inventory loads perfectly normal as well. Anyone know how to fix this issue?

    Also, just incase it's needed, here is the plugin.yml:
    Code:java
    1. name: MenuInv
    2. version: 1.0
    3. main: me.squidboss.menuinv.MenuInv
    4. description: Select a kit!
    5.  
    6. commands:
    7. upgrademenu:
    8. usage: /<command>
    9. description: Upgrade Menu!


    Ooh nevermind, after messing with it for a bit, I saw an error. It is as follows:
    Show Spoiler

    Code:java
    1. 16:09:56 [SEVERE] Could not pass event InventoryClickEvent to MenuInv v1.0
    2. org.bukkit.event.EventException
    3. at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    4. va:427)
    5. at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    6. a:62)
    7. at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    8. ava:477)
    9. at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    10. ava:462)
    11. at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java
    12. :1366)
    13. at net.minecraft.server.v1_6_R2.Packet102WindowClick.handle(SourceFile:3
    14. 1)
    15. at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296
    16. )
    17. at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java
    18. :118)
    19. at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
    20. at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:3
    21. 0)
    22. at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:5
    23. 90)
    24. at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:2
    25. 26)
    26. at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:4
    27. 86)
    28. at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java
    29. :419)
    30. at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:5
    31. 82)
    32. Caused by: java.lang.NullPointerException
    33. at me.squidboss.menuinv.Menu1.onInventoryClick(Menu1.java:89)
    34. at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
    35. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    36. at java.lang.reflect.Method.invoke(Unknown Source)
    37. at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    38. va:425)
    39. ... 14 more



    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
  2. Offline

    hockeygoalie5

    Your problem is a NPE on line 89 of Menu1.java:
    Code:java
    1. if (e.getCurrentItem().getItemMeta() == null) return;

    If the player clicks on an empty slot, e.getCurrentItem() will return null. Run a not null check on e.getCurrentItem() before line 89.
     
  3. Offline

    Squid_Boss

    And how would I go about doing that?
     
  4. Offline

    hockeygoalie5

    Squid_Boss

    Code:java
    1. if(e.getCurrentItem() == null) return;
    2. if(e.getCurrentItem().getItemMeta() == null) return;
     
  5. Offline

    Squid_Boss

    Works, thanks. One last thing before I can put this as solved, though. Here are the details:

    Code:java
    1. if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("Upgrades")) {
    2. e.setCancelled(true);
    3. e.getWhoClicked().closeInventory();
    4. menu2.show1(p);
    5. }

    When that item is clicked, I get a NPE on line 122, and my new inventory never appears.
    Line 122 = menu2.show1(p);
     
Thread Status:
Not open for further replies.

Share This Page