InventoryClick not cancelling

Discussion in 'Spigot Plugin Development' started by Snowmite, Jun 1, 2017.

  1. The nextPage items and previousPage items are not cancelling when clicked on. Yes, the names are the exact same from the config.

    Code:
    Code (Text):
        @EventHandler(ignoreCancelled=true)
        public void onClick(InventoryClickEvent event) {
            if (!(event.getWhoClicked() instanceof Player)) return;
            Player p = (Player) event.getWhoClicked();
            if(event.getInventory().getName().equals(Core.getInstance().getConfig().getString("options.food-central.menu-name").replace("&", "§"))){
                if (!users.containsKey(p.getUniqueId())) return;
                ScrollerInventory inv = users.get(p.getUniqueId());
                if (event.getCurrentItem() == null || event.getCurrentItem().getItemMeta() == null ||
                        event.getCurrentItem().getItemMeta().getDisplayName() == null ) {
                    return;
                }
                if (event.getCurrentItem().getItemMeta().getDisplayName().equals(nextPageName)) {
                    event.setCancelled(true);
                    if (inv.currpage >= inv.pages.size() - 1) {
                        return;
                    }
                    inv.currpage += 1;
                    p.openInventory(inv.pages.get(inv.currpage));
                }
                if (event.getCurrentItem().getItemMeta().getDisplayName().equals(previousPageName)) {
                    event.setCancelled(true);
                    if (inv.currpage > 0) {
                        inv.currpage -= 1;
                        p.openInventory(inv.pages.get(inv.currpage));
                    }
                    else{
                        p.sendMessage("no!");
                    }
                }
                for (Food food : FoodManager.getFoods()) {
                    String name = ChatColor.stripColor(event.getCurrentItem().getItemMeta().getDisplayName());
                    if (name.contains(food.getName()) && event.getInventory().getName().equals(Core.getInstance().getConfig().getString("options.food-central.menu-name").replace("&", "§"))) {
                        event.setCancelled(true);
                        Bukkit.getPluginManager().callEvent(new FoodBuyEvent(p, food, food.getCost()));
                        return;
                    }
                }
            }
        }
     
  2. Make some debug lines