Mushroom Soup Regen Health Code Not Working?

Discussion in 'Plugin Development' started by lcpvp, Jan 1, 2013.

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

    lcpvp

    I am trying to make mushroom soup regen 3.5 hearts, I made this.
    What is wrong with it?
    @EventHandler
    public void OnPlayerSoup(PlayerInteractEvent event){
    Player player = event.getPlayer();
    if(player.getHealth() == 20){
    }else{
    int soup = +7;
    if((event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() ==Action.RIGHT_CLICK_BLOCK) && player.getItemInHand().getType() == Material.MUSHROOM_SOUP){
    player.setHealth(player.getHealth() + soup > player.getMaxHealth() ? player.getMaxHealth() : player.getHealth() + soup);
    event.getPlayer().getItemInHand().setType(Material.BOWL);
    }


    }
    }
     
  2. Offline

    LaxWasHere

    Did you register the event?
     
  3. Offline

    lcpvp

    How do I do that?? I started this yesterday, so sorry if I ask nooby stuff.
     
  4. Offline

    LaxWasHere

  5. Offline

    Jogy34

    Again, use a code box when posting code. There is even a button for it second from the right on the bottom row on the top if you are using the Rich Text Editor which is the default one.

    second you never said what is wrong with it.
     
  6. Offline

    lcpvp

    Also, I get no errors on the side.

    Code:
    package com.gmail.lylecproductions.multisoup;
     
    import org.bukkit.Material;
    import org.bukkit.Server;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.ShapelessRecipe;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Multisoup extends JavaPlugin {
       
        @Override
        public void onEnable(){
          Server server = this.getServer();
         
          ShapelessRecipe cactus = new ShapelessRecipe(new ItemStack(Material.MUSHROOM_SOUP));
          cactus.addIngredient(2, Material.CACTUS);
          cactus.addIngredient(1, Material.BOWL);
         
          server.addRecipe(cactus);
         
          ShapelessRecipe milk = new ShapelessRecipe(new ItemStack(Material.MUSHROOM_SOUP));
          milk.addIngredient(2, Material.INK_SACK, 3);
          milk.addIngredient(1, Material.BOWL);
       
          server.addRecipe(milk);
         
          ShapelessRecipe ajuice = new ShapelessRecipe( new ItemStack(Material.MUSHROOM_SOUP));
          ajuice.addIngredient(1, Material.APPLE);
          ajuice.addIngredient(1, Material.BOWL);
       
          server.addRecipe(ajuice);
         
          ShapelessRecipe sapstew = new ShapelessRecipe( new ItemStack(Material.MUSHROOM_SOUP));
          sapstew.addIngredient(1, Material.SAPLING);
          sapstew.addIngredient(1, Material.BOWL);
         
          server.addRecipe(sapstew);
         
       
          }
     
     
    @EventHandler
    public void OnPlayerSoup(PlayerInteractEvent event){
        Player player = event.getPlayer();
        if(player.getHealth() == 20){
        }else{
            int soup = +7;
            if((event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() ==Action.RIGHT_CLICK_BLOCK) && player.getItemInHand().getType() == Material.MUSHROOM_SOUP){
                player.setHealth(player.getHealth() + soup > player.getMaxHealth() ? player.getMaxHealth() : player.getHealth() + soup);
                event.getPlayer().getItemInHand().setType(Material.BOWL);
            }
           
           
        }
    }
    }
     
       
       
       
             
           
       
     
    
    How do I activate it?? It says to
    To register your functions, the class containing the EventHandler(s) must implement the Listener class.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 30, 2016
  7. Offline

    Bjornke

    Like so:

    Code:
    public class main extends JavaPlugin implements Listener {
       public void onEnable() {
          PluginManager pm = Bukkit.getPluginManager();
          pm.registerEvents(this, this);
          pm.registerEvents(new signs(), this);
          pm.registerEvents(new redstone(), this);
       }
    }
    
    Obviously you can see that we can also register events for other classes, and that the main class must Implement Listener if it has EventHandlers inside of it as well as any other class that uses events.
     
  8. Offline

    lcpvp

    What do I put??
    Code:
    public class Multisoup extends JavaPlugin implements Listener{
       
        @Override
        public void onEnable(){
            PluginManager pm = Bukkit.getPluginManager();
            pm.registerEvents(this, this);
          Server server = this.getServer();
     
  9. Offline

    chasechocolate

    This goes in your onEnable:
    Code:java
    1. PluginManager pm = this.getServer().getPluginManager();
    2. pm.registerEvents(this, this);

    Also, remember to implement Listener in your class that has the listener.
     
Thread Status:
Not open for further replies.

Share This Page