Solved Item in hand?

Discussion in 'Plugin Development' started by Bobfan, Mar 10, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    Bobfan

    When trying to get the item in hand, it doesn't seem to work. Is there something wrong with my code?
    Code:
    @EventHandler
        public void onEntityDamageEvent(EntityDamageEvent event) {
            if(event.getEntity() instanceof Player) {
                Player p = (Player) event.getEntity();
               
                if(!(Avengers.avengerType >= 3)) {
                    p.setHealth(20);
                    event.setCancelled(true);
                }//is assembled, and not 3, 4, or 5
               
                if(Avengers.avengerType == 3) {
                    if(p.getInventory().getItemInHand().getType() == Material.PISTON_EXTENSION) {
                        event.setDamage(0);
                    } else {
                        event.setDamage(event.getDamage() / 2);
                    }//piston
                }//captainAmerica
            }//if it is a player
        }//event method
    It works if the avengerType is less than 3, but when avengerType is 3, it won't work. I used this code to spawn a piston extension. Am I missing something?
    Code:
    ItemStack item = new ItemStack(Material.PISTON_EXTENSION);
                ItemMeta meta = item.getItemMeta();
               
                meta.setDisplayName(ChatColor.LIGHT_PURPLE + "Super Shield!");
                item.setItemMeta(meta);
    (I noticed half damage being dealt, so I do know it gets to the else.
     
  2. Offline

    GodzOfMadness

    Bobfan
    if(p.getInventory().getItemInHand().getType().equals(Material.PISTON_EXTENSION))
    not sure if it matters but it could
     
  3. Offline

    chasechocolate

  4. Offline

    Bobfan

    Nope, I had that, and changed it. I have tried many things.

    Ninja'd
     
  5. Offline

    GodzOfMadness

    Bobfan i honestly don't know it looks good from my end and you say it gets to the else statement so....
     
  6. Offline

    jorisk322

    just use p.getItemInHand(). Don't use their inventory at all.
     
  7. Offline

    Bobfan

    It seems to skip over it even though it seems right?

    Ninja'd again!

    null. It still gives me damage. Wait...

    FIXED! My code I HAD:
    Code:
    if(p.getItemInHand().getType().equals(Material.PISTON_EXTENSION)) {
                        p.setHealth(20);
                    } else {
    I changed it in my original post, but forgot to change it in my actually code. I forgot to add event.setCancelled(true) so it basically did nothing. On seeing this, I fixed it and changed it to normal. Sorry guys.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 31, 2016
Thread Status:
Not open for further replies.

Share This Page