.setFoodLevel not work?

Discussion in 'Plugin Development' started by JooshYT, Mar 12, 2015.

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

    JooshYT

    Code:
         //Magic Wands
         @EventHandler
         public void PlayerInteract(PlayerInteractEvent event) {
             //Nether Star
             if (event.getPlayer().getItemInHand().getType().equals(Material.NETHER_STAR)) {
                 if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
                     //if("Sugar".equals(event.getPlayer().getItemInHand().getItemMeta().getDisplayName())){
                         event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 1200, 2));
                         event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 260, 1));
                         event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 1200, 1));
                         event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.ABSORPTION, 1200, 1));
                         event.getPlayer().getInventory().removeItem(new ItemStack[] {new ItemStack(Material.NETHER_STAR,  1) });
                         event.getPlayer().playSound(event.getPlayer().getLocation(), Sound.EAT, 10, 1);
                         event.getPlayer().setFoodLevel(40);
                     //}
                 }
             }
             //Speed Sugar
             if (event.getPlayer().getItemInHand().getType().equals(Material.SUGAR)) {
                 if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
                     //if("Sugar".equals(event.getPlayer().getItemInHand().getItemMeta().getDisplayName())){
                         event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 80, 0));
                         event.getPlayer().getInventory().removeItem(new ItemStack[] {new ItemStack(Material.SUGAR,  1) });
                         event.getPlayer().playSound(event.getPlayer().getLocation(), Sound.EAT, 10, 1);
                         event.getPlayer().setFoodLevel(event.getPlayer().getFoodLevel() + 2);
                     //}
                 }
             }
         }
    Everything else works other than setting the food to max?

    Whats wrong with the code?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 13, 2016
  2. Offline

    ElliottOlson

    The reason that this is not working is because the max food level is 20.
     
  3. Offline

    JooshYT

    the second one still wont work though?
     
  4. Offline

    ElliottOlson

    You might want to check their food level before adding 2, to ensure you are not setting their food level over 20.
    Also, you may want to create an object for Player so you don't have to use event.getPlayer() for every action.
     
  5. Offline

    JooshYT

    I can add the check easy but in game i was only 3 unger bars full then when i right clicked the sugar it didnt add any food.
     
  6. Offline

    uksspy

    Put in some debug code to make sure everything is being executed.
     
Thread Status:
Not open for further replies.

Share This Page