Help with InteractEvent

Discussion in 'Plugin Development' started by Unknown_Stalker_, Oct 14, 2013.

Thread Status:
Not open for further replies.
  1. So i have this interact event for my plugin i'm making like mcctf, but on the last Beef, it dosen't disapear and infinetly heals the player.
    Code:
        @EventHandler
        public void onPlayerSoldierEat(PlayerInteractEvent event){
            Player player = event.getPlayer();
            int soup = getConfig().getInt("Options.SoupConfig.HealthHealed");
            if(player.getHealth() == 20){
            }else{
                if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK){
                    if(player.getItemInHand().getType() == Material.COOKED_BEEF){
                        player.getInventory().removeItem(new ItemStack(Material.COOKED_BEEF, 1));
                        player.setHealth(player.getHealth() + soup > player.getMaxHealth() ? player.getMaxHealth() : player.getHealth() + soup);
                   
                    }
                }
            }
        }
     
  2. Offline

    bobbob1870

    Try replacing
    player.getInventory().removeItem(new ItemStack(Material.COOKED_BEEF, 1));
    with
    event.getItem().setAmount(event.getItem().getAmount() - 1);
     
    Skyost likes this.
  3. Offline

    mrCookieSlime

    Code:
    if (player.getItemInHand().getAmount() == 1) {
    player.setItemInHand(Null);
    }
    else {
    player.getItemInHand.setAmount(player.getItemInHand().getAmount() - 1);
    }
     
    Skyost likes this.
  4. Offline

    Deleted user

    Unknown_Stalker_
    Its weird

    I found a way to fix it...well two ways
    1. Put the remove item part in a runnable with 0L delay
    2. player.getInventory().updateInventory() [it may be just .update()]

    Enjoy and Like,
    JHG0
     
    Skyost likes this.
Thread Status:
Not open for further replies.

Share This Page