InventoryClickEvent not being called

Discussion in 'Plugin Development' started by Croug, Jun 30, 2013.

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

    Croug

    My onInventoryClick event isn't ever being called, I have all my events registered, theres no stack trace, whats the problem?

    PlayerListener class:
    Code:java
    1. package tk.CalcuProcessing.ThisIsNotAPlugin;
    2.  
    3. import java.util.HashMap;
    4. import java.util.Map;
    5.  
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.EventPriority;
    9. import org.bukkit.event.HandlerList;
    10. import org.bukkit.event.Listener;
    11. import org.bukkit.event.entity.PlayerDeathEvent;
    12. import org.bukkit.event.inventory.InventoryClickEvent;
    13. import org.bukkit.event.player.*;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.inventory.PlayerInventory;
    16.  
    17. public class PlayerListener implements Listener{
    18.  
    19. private Main plugin;
    20.  
    21. Map<String, ItemStack[]> Invs = new HashMap<String, ItemStack[]>();
    22. Map<String, Integer> Experience = new HashMap<String, Integer>();
    23.  
    24. public PlayerListener(Main plugin){
    25. this.plugin = plugin;
    26. plugin.getServer().getPluginManager().registerEvents(this, plugin);
    27. }
    28.  
    29. @EventHandler
    30. public void onPlayerLogin(PlayerJoinEvent evt){
    31. Player player = evt.getPlayer();
    32. if(!plugin.users.contains(player.getDisplayName())){
    33. plugin.users.set(player.getDisplayName() + ".nodrop", plugin.config.get("nodrop-default"));
    34. }
    35. }
    36.  
    37. @EventHandler(priority = EventPriority.LOWEST)
    38. public void onPlayerDeath(PlayerDeathEvent evt){
    39. if(plugin.users.getBoolean(evt.getEntity().getDisplayName() + ".nodrop") == false){return;}
    40. ItemStack[]inv = evt.getEntity().getInventory().getContents();
    41. int xp = evt.getEntity().getTotalExperience();
    42. evt.setDroppedExp(0);
    43. Invs.put(evt.getEntity().getDisplayName(), inv);
    44. Experience.put(evt.getEntity().getDisplayName(), xp);
    45. evt.getDrops().clear();
    46. }
    47.  
    48. @EventHandler(priority = EventPriority.HIGHEST)
    49. public void onPlayerRespawn(PlayerRespawnEvent evt){
    50. if(plugin.users.getBoolean(evt.getPlayer().getDisplayName() + ".nodrop") == false){return;}
    51. PlayerInventory inv = evt.getPlayer().getInventory();
    52. inv.setContents(Invs.get(evt.getPlayer().getDisplayName()));
    53. //evt.getPlayer().setTotalExperience(Experience.get(evt.getPlayer().getDisplayName()));
    54. //plugin.getLogger().info("Executing: xp "+ Experience.get(evt.getPlayer().getDisplayName()) + " " + evt.getPlayer().getDisplayName());
    55. //Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(),"xp "+ Experience.get(evt.getPlayer().getDisplayName()) + " " + evt.getPlayer().getDisplayName());
    56. Invs.remove(evt.getPlayer().getDisplayName());
    57. Experience.remove(evt.getPlayer().getDisplayName());
    58. }
    59.  
    60. @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
    61. public void onInventoryClick(InventoryClickEvent evt){
    62. if(evt.getInventory() == CommandHandler.market){
    63.  
    64. evt.setCancelled(true);
    65. }
    66. }
    67.  
    68. public void Disable(Main plugin){
    69. HandlerList.unregisterAll(plugin);
    70. }
    71.  
    72. }
    73.  
     
  2. Offline

    Jogy34

    Have you tried adding debug statements to make sure that it isn't actually being called? It might just be that the inventory that is being clicked on isn't actually your market inventory.
     
  3. Offline

    Croug

    I fixed the problem by comparing the title of the inventory as apposed to the instance of the inventory
     
  4. Offline

    xiironiix2

    oh hi Jogy34 :p
     
Thread Status:
Not open for further replies.

Share This Page