InventoryClickEvent not being called?

Discussion in 'Plugin Development' started by Acer_Mortem, Apr 19, 2014.

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

    Acer_Mortem

    Right now, I'm creating a custom inventory GUI, and I'm checking whenever a player clicks on an item in the GUI.

    However, for some reason, the InventoryClickEvent is not being called for this.

    Here's my code:

    Creating the GUI:
    Code:
            Inventory i = Bukkit.createInventory(null, 9, "Character Stats");
            String currentclass = plugin.dfs.getCustomConfig().getString(UUIDAPI.getUUID(p) + ".Current-Class");
            int currentLevel = plugin.dfs.getCustomConfig().getInt(UUIDAPI.getUUID(p) + "." + currentclass + "-Level");
            int nextLevel = currentLevel + 1;
            int currentEXP = plugin.dfs.getCustomConfig().getInt(UUIDAPI.getUUID(p) + "." + currentclass + "-EXP");
            int expForNextLevel = plugin.getConfig().getInt("Levels.EXP." + nextLevel);
            int remainderEXP = expForNextLevel - currentEXP;
           
            ItemStack i3 = new ItemStack(Material.NETHER_STAR);
            ItemMeta meta3 = i3.getItemMeta();
            meta3.setDisplayName(ChatColor.YELLOW + "Character Class: " + ChatColor.AQUA + currentclass);
            ArrayList<String> lore3 = new ArrayList<String>();
            lore3.add(ChatColor.GRAY + "Right now, your current");
            lore3.add(ChatColor.GRAY + "class is the: " + ChatColor.AQUA + currentclass);
            meta3.setLore(lore3);
            i3.setItemMeta(meta3);
            i.setItem(2, i3);
           
            ItemStack i1 = new ItemStack(Material.BOOK);
            ItemMeta meta1 = i1.getItemMeta();
            meta1.setDisplayName(ChatColor.GREEN + "Current Level: " + ChatColor.LIGHT_PURPLE + currentLevel);
            ArrayList<String> lore1 = new ArrayList<String>();
            lore1.add(ChatColor.GRAY + "Your current level for");
            lore1.add(ChatColor.GRAY + "your " + ChatColor.AQUA +  currentclass + " Class" + ChatColor.GRAY + " is: " + ChatColor.LIGHT_PURPLE + currentLevel);
            meta1.setLore(lore1);
            i1.setItemMeta(meta1);
            i.setItem(3, i1);
           
            ItemStack i2 = new ItemStack(Material.BLAZE_POWDER);
            ItemMeta meta2 = i2.getItemMeta();
            meta2.setDisplayName(ChatColor.DARK_AQUA + "Current EXP: " + ChatColor.GOLD + currentEXP);
            ArrayList<String> lore2 = new ArrayList<String>();
            lore2.add(ChatColor.GRAY + "Your current total EXP for");
            lore2.add(ChatColor.GRAY + "your " + ChatColor.AQUA + currentclass + " Class" + ChatColor.GRAY + " is: " + ChatColor.GOLD + currentEXP);
            meta2.setLore(lore2);
            i2.setItemMeta(meta2);
            i.setItem(4, i2);
           
            ItemStack i4 = new ItemStack(Material.PAPER);
            ItemMeta meta4 = i4.getItemMeta();
            meta4.setDisplayName(ChatColor.DARK_GREEN + "EXP For Next Level: " + ChatColor.YELLOW + expForNextLevel);
            ArrayList<String> lore4 = new ArrayList<String>();
            lore4.add(ChatColor.GRAY + "To get to your next level, you");
            lore4.add(ChatColor.GRAY + "must have a total EXP of: " + ChatColor.YELLOW + expForNextLevel);
            meta4.setLore(lore4);
            i4.setItemMeta(meta4);
            i.setItem(5, i4);
           
            ItemStack i5 = new ItemStack(Material.GLOWSTONE_DUST);
            ItemMeta meta5 = i5.getItemMeta();
            meta5.setDisplayName(ChatColor.BLUE + "Remainder EXP: " + ChatColor.LIGHT_PURPLE + remainderEXP);
            ArrayList<String> lore5 = new ArrayList<String>();
            lore5.add(ChatColor.GRAY + "In order to get to the");
            lore5.add(ChatColor.GRAY + "Next Level, " + ChatColor.AQUA + nextLevel + ChatColor.GRAY + ", you must");
            lore5.add(ChatColor.GRAY + "get " + ChatColor.LIGHT_PURPLE + remainderEXP + ChatColor.GRAY + " more" + ChatColor.GOLD + " EXP Points.");
            meta5.setLore(lore5);
            i5.setItemMeta(meta5);
            i.setItem(6, i5);
            p.openInventory(i);
    Listening for the Click:
    Code:
        @EventHandler
        public void characterStatsGUI(InventoryClickEvent e){
            plugin.getLogger().info("Check1");
            if(!(e.getWhoClicked() instanceof Player)) return;
            if(!(ChatColor.stripColor(e.getView().getTopInventory().getName()).equals("Character Stats"))) return;
            e.setCancelled(true);
        }
    Unfortunately, not even "Check1" message is being logged, leaving me to suspect something is seriously going wrong.

    My listener has been registered, I am using EventHandler, and other listeners in the same Listener class are working properly.

    Thanks for the help! ~Acer
     
Thread Status:
Not open for further replies.

Share This Page