Solved PlayerInteractAtEntityEvent being initiated twice

Discussion in 'Spigot Plugin Development' started by XxFroggyKnightxX, Dec 8, 2018 at 6:11 AM.

  1. Hello I am having an issue with my
    PlayerInteractAtEntityEvent being shot twice... not sure why this happens spent awhile trying to fix it. No luck.

    Any help is appreciated!


    Code (Text):

    @EventHandler
    public void interact(PlayerInteractAtEntityEvent e){
        Player p = e.getPlayer();
        if (e.getRightClicked() instanceof LivingEntity){

            for (Pet pet : Main.getUtils().getPets(p.getUniqueId())){
                if (pet.getNpc() != null && pet.getNpc().getEntity().equals(e.getRightClicked())){
                    //check for food
                    if (p.getInventory().getItemInMainHand().getType() != Material.AIR && p.getInventory().getItemInMainHand().hasItemMeta() && p.getInventory().getItemInMainHand().getItemMeta().hasDisplayName()) {
                        ItemStack item = p.getInventory().getItemInMainHand();
                        String name = item.getItemMeta().getDisplayName();
                        for (int a = 1; a <= Main.getInstance().getConfig().getConfigurationSection("food").getKeys(false).size(); a++) {

                            String foodName = Main.getInstance().getConfig().getString("food." + a + ".name");
                            if (name.equalsIgnoreCase(Main.getUtils().color(foodName))) {
                                int exp = Main.getInstance().getConfig().getInt("food." + a + ".exp");
                                //feed the pet
                                pet.addEXP(exp);

                                if (item.getAmount() > 1) {
                                    item.setAmount(Math.subtractExact(item.getAmount(), 1));
                                    p.getInventory().setItemInMainHand(item);
                                    p.sendMessage("fead");
                                    e.setCancelled(true);
                                    break;
                                } else {
                                    p.getInventory().setItemInMainHand(new ItemStack(Material.AIR));
                                    e.setCancelled(true);
                                    break;
                                }
                            } else {
                                storage.openPetUpgradeMenu(p, pet);
                                return;
                            }
                        }
                    }else{
                        storage.openPetUpgradeMenu(p, pet);
                        return;
                    }
                }
            }
        }
     
     
  2. md_5

    Administrator Developer

Share This Page