1.8.8 [INVENTORYCLICKEVENT] Not cancelling with (event.setCancelled(true);)

Discussion in 'Spigot Plugin Development' started by GabrielBlink, Feb 15, 2020.

Thread Status:
Not open for further replies.
  1. Hello Spigot Developers,
    I'm trying to cancel the InventoryClickEvent but it's not working, A picture is worth a thousand words (https://imgur.com/a/PoeeDRr)

    My Code:
    Code (Java):
    event->{
                event.setCancelled(false);
                if(event.isShiftClick()) {
                    event.setCancelled(true);
                    event.setResult(Result.DENY);
                    return;
                }
                if(event.getClickedInventory().equals(event.getView().getTopInventory())) {
                    event.setCancelled(true);
                    event.setResult(Result.DENY);
                    p.updateInventory();
                    if(event.getSlot() == 11) {
                        if(event.getCursor() != null && event.getCursor().getType().equals(Material.AIR) && event.getCurrentItem()!=null && event.getCurrentItem().getType().equals(Material.MINECART) && event.getCurrentItem().hasItemMeta() && event.getCurrentItem().getItemMeta().hasDisplayName() && event.getCurrentItem().getItemMeta().hasLore()) {
                            return;
                        }
                        if(event.getCurrentItem()!=null) {
                            event.setCancelled(true);
                            event.setResult(Result.DENY);
                            if(creators.containsKey(p.getName())) {
                                if(creators.get(p.getName()).getTime()!=0) {
                                    if(creators.get(p.getName()).getItemS() == null && !event.getCursor().getType().equals(Material.AIR)) {
                                        creators.get(p.getName()).setItem(event.getCursor());
                                        creators.get(p.getName()).save(true);
                                        event.setCurrentItem(event.getCursor());
                                        event.setCursor(new ItemComposer(Material.AIR).toItemStack());
                                        p.updateInventory();
                                        p.sendMessage("§aItem adicionado com sucesso.");
                                        finishPublish(p);
                                    }else if(event.getCursor().getType().equals(Material.AIR)) {
                                        if(p.getInventory().firstEmpty() == -1) {
                                            p.sendMessage("§cSeu inventário está lotado, esvazie-o e tente novamente.");
                                            p.closeInventory();
                                            return;
                                        }
                                        p.getInventory().addItem(event.getCurrentItem());
                                        creators.get(p.getName()).setItem(null);
                                        creators.get(p.getName()).save(true);
                                        p.closeInventory();
                                        p.sendMessage("§aItem removido com sucesso.");
                                    }
                                }else {
                                    if(creators.get(p.getName()).getItemS()==null) {
                                    creators.get(p.getName()).setItem(event.getCursor());
                                    creators.get(p.getName()).save(true);
                                    event.setCurrentItem(event.getCursor());
                                    event.setCursor(new ItemComposer(Material.AIR).toItemStack());
                                    p.updateInventory();
                                    p.sendMessage("§aItem adicionado com sucesso.");
                                    }else if(event.getCursor().getType().equals(Material.AIR)) {
                                        if(p.getInventory().firstEmpty() == -1) {
                                            p.sendMessage("§cSeu inventário está lotado, esvazie-o e tente novamente.");
                                            p.closeInventory();
                                            return;
                                        }
                                        p.getInventory().addItem(event.getCurrentItem());
                                        creators.get(p.getName()).setItem(null);
                                        creators.get(p.getName()).save(true);
                                        p.closeInventory();
                                        p.sendMessage("§aItem removido com sucesso.");
                                    }
                                }
                            }else {
                                new BukkitRunnable() {
                                   
                                    @Override
                                    public void run() {
                                        Creator creator = new Creator(p.getName(), event.getCursor(), 0);
                                        creators.put(p.getName(), creator);
                                        AtlasStorage.insertCreator(p.getName(), creator, true);
                                        event.setCurrentItem(event.getCursor());
                                        event.setCursor(new ItemComposer(Material.AIR).toItemStack());
                                        p.updateInventory();
                                        p.sendMessage("§aItem adicionado com sucesso.");
                                    }
                                }.runTaskAsynchronously(Main.getPlugin(Main.class));
                            }
                        }
                    }
                    if(event.getSlot() == 15) {
                        MULTIPLIER_ASKER.addPlayer(p);
                        p.closeInventory();
                    }
                }
            }
     
  2. Thanks a lot <3
     
Thread Status:
Not open for further replies.