[Please Help!]Quick question about events

Discussion in 'Plugin Development' started by The_Coder, Aug 11, 2012.

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

    The_Coder

    ThijsD Yes I tried it with that but it didn't work
     
  2. Offline

    Phil2812

    Sorry I was watching a film.
    Code:
    package me.The_Coder.Project;
     
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerMoveEvent;
    import org.bukkit.inventory.ItemStack;
     
    public class ProjectListener implements Listener {
        public static TheProjectMain plugin;
     
        public ProjectListener(TheProjectMain theProjectMain) {
            plugin = theProjectMain;
        }
     
        public void onPlayerMove(PlayerMoveEvent pme) {
     
     
     
        Player p = pme.getPlayer();
        if(p.getInventory().contains(Material.SUGAR)) {
     
            p.setFoodLevel(p.getFoodLevel()+2);
            ItemStack itemstack = new ItemStack(Material.SUGAR, 1);
            p.getInventory().remove(itemstack);
        }else {
            if(p.getFoodLevel() > 2) {
                p.setFoodLevel(2);
                p.sendMessage(ChatColor.DARK_RED + "You need drugs!");
            }
     
        }
     
     
     
     
        }
    }
    Try that. Also consider using something like a repeating scheduled task instead. As the hunger should be going down too quick like that.
     
  3. Offline

    ThijsD

    Just tested this and it works:

    Code:
        public void onPlayerMove(PlayerMoveEvent pme) {
                Player p = pme.getPlayer();
                if(p.getInventory().contains(Material.SUGAR)) {
             
                    p.setFoodLevel(p.getFoodLevel()+2);
                    ItemStack itemstack = p.getInventory().getItem(p.getInventory().first(Material.SUGAR));
                    itemstack.setAmount(itemstack.getAmount() -1);
                }else {
                    if(p.getFoodLevel() > 2) {
                        p.setFoodLevel(2);
                        p.sendMessage(ChatColor.DARK_RED + "You need drugs!");
                    }
             
                }
        }
    It just stops at 1 sugar, but you can make something for that :)
     
  4. Offline

    Phil2812

    Note that he told you to increase the hunger level when you have sugar in your inventory. That is what you intended to do. In your code you actually decreased it. So use his code (or mine, they should be the same now).
     
  5. Offline

    The_Coder

    it is not working for me
     
  6. Offline

    ThijsD

    Did you register the event handler? I just tested my code and it works.
     
    The_Coder likes this.
  7. Offline

    The_Coder

Thread Status:
Not open for further replies.

Share This Page