No Health Regain

Discussion in 'Plugin Development' started by Tolerance, Jul 16, 2013.

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

    Tolerance

    Hello. I'm trying to make it so when you /test you lose all of your hearts. (except 1) That part is working fine. I just can't seem to get it so the health does not regain. Thanks for your help.

    Code:
    package me.tolerance.test;
     
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Cancellable;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.entity.EntityRegainHealthEvent;
    import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
     
    public class HealthCommand implements CommandExecutor {
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label,String[] args) {
            if (label.equalsIgnoreCase("test")){
                Player p = (Player)sender;
                p.setHealth(2.0);
                p.sendMessage("Health lost.");
             
                return true;
            }
            return false;
         
        }
        @EventHandler
        public void onPlayerRegainHealth(EntityRegainHealthEvent event) {
        if(event.getEntity() instanceof Player)
        event.setCancelled(true);
     
    }
    }
     
  2. you need to make a listener class for the event you trying to catch
     
  3. Offline

    Tolerance

    ferrybig

    So like?
    Code:
    package me.tolerance.test;
     
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityRegainHealthEvent;
     
    public class NoHealthRegen implements Listener {
     
        @EventHandler
        public void onPlayerRegainHealth(EntityRegainHealthEvent event) {
            if(event.getEntity() instanceof Player)
                event.setCancelled(true);
     
        }
     
    }
    
    Sorry, i'm a n00b.
     
  4. Offline

    SgtPunishment

    Code:java
    1. @EventHandler
    2. public void onPlayerRegainHealth(EntityRegainHealthEvent event) {
    3. if (event.getRegainReason() == RegainReason.SATIATED) {
    4. event.setCancelled(true);
    5. }
    6. }


    That's how I had it before 1.6.2 (This works in 1.5.2, not sure for 1.6.2
     
  5. Offline

    Tolerance

    Didn't work for me. :(
     
  6. Offline

    fanaticmw2

    Did you register that new listener class?
     
  7. Offline

    Janmm14

    There is a gamerule for that, I think.
     
  8. Offline

    chasechocolate

    Yes, there is. You beat me to posting it :p
     
    Eats_Rainbows likes this.
Thread Status:
Not open for further replies.

Share This Page