Event canceled Problem

Discussion in 'Plugin Development' started by CraftRay, Mar 12, 2016.

Thread Status:
Not open for further replies.
  1. Why when I canceled event in
    Code:
     if (clicked.getType() == Material.MONSTER_EGG && clicked.getItemMeta().getDisplayName().equals("§6§lKot Poziom: 2"))
                        {
                            event.setCancelled(true);
                        }
    it isn't canceled ?
    And next is like... ?

    Code:
    @EventHandler
        public void onInventoryClick(InventoryClickEvent event)
        {
            Player player = (Player) event.getWhoClicked(); // The player that clicked the item
            ItemStack clicked = event.getCurrentItem(); // The item that was clicked
            Inventory inventory = event.getInventory(); // The inventory that was clicked in
                if (inventory.getName().equals(myInventory.getName()))
                {
                    if (clicked.getType() == Material.MONSTER_EGG && clicked.getItemMeta().getDisplayName().equals("§6§lKot Poziom: 1"))
                    {
                        event.setCancelled(true);
                        double balance = econ.getBalance(player);
                    
                        if(balance >= Double.parseDouble(Cat.koszt2))
                        {
                            try
                            {
                            File config = new File("plugins/Cat/config.yml");
                            Scanner odczyt = new Scanner(config);
                            ArrayList lista = new ArrayList();
                                while(odczyt.hasNextLine())
                                {
                                    lista.add(odczyt.nextLine());
                                }
                                String nick = player.getName();
                                    if(lista.contains("      "+nick+":"))
                                    {
                                        player.sendMessage(ChatColor.RED+"Już posiadasz kota!");
                                        event.setCancelled(true);
                                    }
                                    else
                                    {
                                        r = econ.withdrawPlayer(player, Double.parseDouble(Cat.koszt2));
                                        player.sendMessage("Od teraz posiadasz swojego kotka!");
                                        saveBought(player);
                                    }
                                }
                                catch(IOException e)
                                {
                                    e.printStackTrace();
                                }
                        }
                    
                        if (clicked.getType() == Material.MONSTER_EGG && clicked.getItemMeta().getDisplayName().equals("§6§lKot Poziom: 2"))
                        {
                            event.setCancelled(true);
                        }
                        if (clicked.getType() == Material.MONSTER_EGG && clicked.getItemMeta().getDisplayName().equals("§6§lKot Poziom: 3"))
                        {
                            event.setCancelled(true);
                        }
                        if (clicked.getType() == Material.MONSTER_EGG && clicked.getItemMeta().getDisplayName().equals("§6§lKot Poziom: 4"))
                        {
                            event.setCancelled(true);
                        }
                        if (clicked.getType() == Material.MONSTER_EGG && clicked.getItemMeta().getDisplayName().equals("§6§lKot Poziom: 5"))
                        {
                            event.setCancelled(true);
                        }
                        if (clicked.getType() == Material.MONSTER_EGG && clicked.getItemMeta().getDisplayName().equals("§6§lKot Poziom: 6"))
                        {
                            event.setCancelled(true);
                        }
                        if (clicked.getType() == Material.MONSTER_EGG && clicked.getItemMeta().getDisplayName().equals("§6§lKot Poziom: 7"))
                        {
                            event.setCancelled(true);
                        }
                    }
                    if(clicked.getType() == Material.REDSTONE_BLOCK)
                    {
                        event.setCancelled(true);
                        player.closeInventory();
                    }
                }
        }
     
  2. Offline

    AGC-Intra

    No error when action is performed?
     
  3. @AGC-Intra no :(

    So, ,,Emerald_BLOCK and Redstone_BLOCK is okey canceled event"
     
  4. Offline

    AGC-Intra

    I would assume it's never entering the 'if' condition you want it to.
    Can put console reports per condition and run it then perform actions and see what ones are actually fired.
    Or print back the variables it is working with so you can see if they contain what you think they do.
     
  5. Offline

    Zombie_Striker

    @CraftRay
    Remember: SetCancel can be set to false, and as such can be overridden. Also remember that setCanceled does not stop the rest of the method from being read.
     
  6. @Zombie_Striker
    Code:
                        if (clicked.getType() == Material.MONSTER_EGG && clicked.getItemMeta().getDisplayName().equals("§6§lKot Poziom: 2"))
                        {
                            player.sendMessage("it is it");
                            event.setCancelled(true);
    Print me it is it hmm... why can't cancelled ?

    @Zombie_Striker
    I have error, when I click and place EGG. I added that line:
    Code:
                player.sendMessage(clicked.getType()+" , "+clicked.getItemMeta().getDisplayName());
    Code:
    Caused by: java.lang.NullPointerException
    >       at me.xcraftrayx.pl.CatBuy.onInventoryClick(CatBuy.java:140) ~[?:?]
    
     
    Last edited: Mar 12, 2016
  7. Offline

    Zombie_Striker

    @CraftRay
    I think you're confusing "return;" with "setCanceled". Return stops the current method from running. SetCanceled stops future methods.
     
  8. Okey... To close :p
    I worked it out.
     
Thread Status:
Not open for further replies.

Share This Page