Not registering the events?

Discussion in 'Plugin Development' started by VictoryShot, Apr 12, 2014.

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

    VictoryShot

    Alright so I added a method to the onEnable to register the EventHandlers class but it's not event registering. I click on an item and it doesn't set it canceled true and i added a message to one. It doesnt send the message either but heres the code:
    Main:
    Code:java
    1. public class Main extends JavaPlugin implements Listener{
    2.  
    3. public static Main plugin = null;
    4.  
    5. public void onEnable() {
    6. PluginManager pm = getServer().getPluginManager();
    7. pm.registerEvents(this, this);
    8.  
    9. getServer().getPluginManager().registerEvents(new EventHandlers(), this);
    10. }
    11.  
    12. public ItemStack createItem(Material material, int amount, short shrt,
    13. String displayname, String lore) {
    14. ItemStack item = new ItemStack(material, amount, (short) shrt);
    15. ItemMeta meta = item.getItemMeta();
    16. meta.setDisplayName(displayname);
    17. ArrayList<String> Lore = new ArrayList<String>();
    18. Lore.add(lore);
    19. meta.setLore(Lore);
    20.  
    21. item.setItemMeta(meta);
    22. return item;
    23. }
    24.  
    25. static Inventory foodshop;
    26. {
    27. foodshop = Bukkit.createInventory(null, 9, "§5§nFood Shop");
    28.  
    29. foodshop.setItem(
    30. 0,
    31. createItem(Material.APPLE, 1, (short) 0, "§3Apple",
    32. "§fPrice §610 §fSilver"));
    33. foodshop.setItem(
    34. 1,
    35. createItem(Material.GOLDEN_APPLE, 1, (short) 0, "§bGolden Apple",
    36. "§fPrice §62100 §fSilver"));
    37. foodshop.setItem(
    38. 2,
    39. createItem(Material.COOKED_BEEF, 1, (short) 0, "§cCooked Beef",
    40. "§fPrice §680 §fSilver"));
    41. foodshop.setItem(
    42. 3,
    43. createItem(Material.BREAD, 1, (short) 0, "§aBread",
    44. "§fPrice §630 §fSilver"));
    45. foodshop.setItem(
    46. 4,
    47. createItem(Material.GRILLED_PORK, 1, (short) 0, "§bCooked Porkchop",
    48. "§fPrice §67 §fSilver"));
    49. foodshop.setItem(
    50. 5,
    51. createItem(Material.CAKE, 1, (short) 0, "§6Cake",
    52. "§fPrice §6105 §fSilver"));
    53. foodshop.setItem(
    54. 6,
    55. createItem(Material.COOKED_CHICKEN, 1, (short) 0, "§8Cooked Chicken",
    56. "§fPrice §625 §fSilver"));
    57. foodshop.setItem(
    58. 7,
    59. createItem(Material.COOKIE, 1, (short) 0, "§7Cookie",
    60. "§fPrice §610 §fSilver"));
    61. foodshop.setItem(
    62. 8,
    63. createItem(Material.MELON, 1, (short) 0, "§6Watermelon",
    64. "§fPrice §65 §fSilver"));
    65. }
    66. public boolean onCommand(CommandSender sender, Command cmd, String label,
    67. String[] a) {
    68. Player player = (Player) sender;
    69. if (cmd.getName().equalsIgnoreCase("foodshop")) {
    70. player.openInventory(foodshop);
    71. }
    72. return false;
    73. }
    74. }


    EventsHandler:
    Code:java
    1. public class EventHandlers implements Listener{
    2.  
    3. @EventHandler
    4. public void onClick(InventoryClickEvent event) {
    5. Player p = (Player) event.getWhoClicked();
    6.  
    7. if (event.getInventory().getName().equalsIgnoreCase(Main.foodshop.getName())) {
    8. event.setCancelled(true);
    9.  
    10. if (event.getCurrentItem() == null) {
    11. return;
    12. }
    13.  
    14. if (!(event.getCurrentItem().hasItemMeta())) {
    15. return;
    16. }
    17.  
    18. if (event.getCurrentItem().getItemMeta().getDisplayName()
    19. .equals("§3Apple")) {
    20. if (CurrencyAPI.hasEnough(p, 10)) {
    21. CurrencyAPI.takeSilver(p, 10);
    22. p.getInventory().addItem(new ItemStack(Material.APPLE, 1));
    23. p.closeInventory();
    24. p.sendMessage("Test worked!");
    25. p.getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Silver ")).setScore(CurrencyAPI.balanceSilver(p));
    26.  
    27. } else {
    28. p.closeInventory();
    29. p.sendMessage("§cYou're too poor!");
    30. }
    31. }
    32. if (event.getCurrentItem().getItemMeta().getDisplayName()
    33. .equals("§bDiamond")) {
    34. if (CurrencyAPI.hasEnough(p, 100)) {
    35. CurrencyAPI.takeSilver(p, 100);
    36. p.getInventory().addItem(new ItemStack(Material.GOLDEN_APPLE, 1));
    37. p.closeInventory();
    38. p.getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Silver ")).setScore(CurrencyAPI.balanceSilver(p));
    39.  
    40. } else {
    41. p.closeInventory();
    42. p.sendMessage("§cYou're too poor!");
    43. }
    44. }
    45. if (event.getCurrentItem().getItemMeta().getDisplayName()
    46. .equals("§cWood")) {
    47. if (CurrencyAPI.hasEnough(p, 60)) {
    48. CurrencyAPI.takeSilver(p, 60);
    49. p.getInventory().addItem(new ItemStack(Material.COOKED_BEEF, 15));
    50. p.closeInventory();
    51. p.getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Silver ")).setScore(CurrencyAPI.balanceSilver(p));
    52.  
    53. } else {
    54. p.closeInventory();
    55. p.sendMessage("§cYou're too poor!");
    56. }
    57. }
    58. if (event.getCurrentItem().getItemMeta().getDisplayName()
    59. .equals("§aBread")) {
    60. if (CurrencyAPI.hasEnough(p, 30)) {
    61. CurrencyAPI.takeSilver(p, 30);
    62. p.getInventory().addItem(new ItemStack(Material.BREAD, 1));
    63. p.closeInventory();
    64. p.getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Silver ")).setScore(CurrencyAPI.balanceSilver(p));
    65.  
    66. } else {
    67. p.closeInventory();
    68. p.sendMessage("§cYou're too poor!");
    69. }
    70. }
    71. if (event.getCurrentItem().getItemMeta().getDisplayName()
    72. .equals("§bCooked Porkchop")) {
    73. if (CurrencyAPI.hasEnough(p, 7)) {
    74. CurrencyAPI.takeSilver(p, 7);
    75. p.getInventory().addItem(new ItemStack(Material.GRILLED_PORK, 1));
    76. p.closeInventory();
    77. p.getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Silver ")).setScore(CurrencyAPI.balanceSilver(p));
    78.  
    79. } else {
    80. p.closeInventory();
    81. p.sendMessage("§cYou're too poor!");
    82. }
    83. }
    84. if (event.getCurrentItem().getItemMeta().getDisplayName()
    85. .equals("§6Gold Ingot")) {
    86. if (CurrencyAPI.hasEnough(p, 105)) {
    87. CurrencyAPI.takeSilver(p, 105);
    88. p.getInventory().addItem(new ItemStack(Material.CAKE, 1));
    89. p.closeInventory();
    90. p.getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Silver ")).setScore(CurrencyAPI.balanceSilver(p));
    91.  
    92. } else {
    93. p.closeInventory();
    94. p.sendMessage("§cYou're too poor!");
    95. }
    96. }
    97. if (event.getCurrentItem().getItemMeta().getDisplayName()
    98. .equals("§8Iron Ingot")) {
    99. if (CurrencyAPI.hasEnough(p, 25)) {
    100. CurrencyAPI.takeSilver(p, 25);
    101. p.getInventory().addItem(new ItemStack(Material.COOKED_CHICKEN, 1));
    102. p.closeInventory();
    103. p.getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Silver ")).setScore(CurrencyAPI.balanceSilver(p));
    104.  
    105. } else {
    106. p.closeInventory();
    107. p.sendMessage("§cYou're too poor!");
    108. }
    109. }
    110. if (event.getCurrentItem().getItemMeta().getDisplayName()
    111. .equals("§7Coal")) {
    112. if (CurrencyAPI.hasEnough(p, 10)) {
    113. CurrencyAPI.takeSilver(p, 10);
    114. p.getInventory().addItem(new ItemStack(Material.COOKIE, 1));
    115. p.closeInventory();
    116. p.getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Silver ")).setScore(CurrencyAPI.balanceSilver(p));
    117.  
    118. } else {
    119. p.closeInventory();
    120. p.sendMessage("§cYou're too poor!");
    121. }
    122. }
    123. if (event.getCurrentItem().getItemMeta().getDisplayName()
    124. .equals("§6Leather Armor")) {
    125. if (CurrencyAPI.hasEnough(p, 5)) {
    126. CurrencyAPI.takeSilver(p, 5);
    127. p.getInventory().addItem(new ItemStack(Material.MELON, 1));
    128. p.closeInventory();
    129. p.getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(ChatColor.GOLD + "Silver ")).setScore(CurrencyAPI.balanceSilver(p));
    130.  
    131. } else {
    132. p.closeInventory();
    133. p.sendMessage("§cYou're too poor!");
    134. }
    135. }
    136.  
    137.  
    138. }
    139. }
    140.  
    141. }
    142.  
     
  2. Put a message before the line Player p = (Player) event.getWhoClicked(); and see if that message is ever fired.
     
  3. Offline

    VictoryShot

    Where?
     
  4. Line 5 in your listener
     
  5. Offline

    VictoryShot

    Yea I found it, it doesnt even send a message.
     
  6. VictoryShot Then you're right. The method never executes for some reason, although a quick glance doesn't really reveal why not. You sure you don't get any errors at any point? (Like when starting up or clicking the inventory)
     
  7. Offline

    FabeGabeMC

    You don't need to cast player to who clicked.
     
  8. Offline

    CraftThatBlock

    In the onClick, but a System.out.println("Test") and check if that outputs.
    Do the name in your onEnable so see if it prints.
     
  9. Offline

    amhokies

    VictoryShot
    You're registering the event as if it was in your main class, but it's not. You need to pass in an instance of your "EventHandlers" class.
     
Thread Status:
Not open for further replies.

Share This Page