How To Use EntityDamagedByEntityEvent

Discussion in 'Plugin Development' started by mkezar, May 4, 2015.

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

    mkezar

    hi. Im trying to use the EntityDamagedByEntityEvent so whenever you hit someone, you have a chance of getting the damage you did as extra life. So whenever i hit someone (and i did like 4 damage) i receive the damage i did (so i get 4 more hearts.) Im a little stuck because i never really use that event.. Heres the code i have so far
    Code:
    package plugins.mkezar;
    
    import org.bukkit.Bukkit;
    import org.bukkit.OfflinePlayer;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Extract extends JavaPlugin implements Listener {
      
        public void onEnable() {
             Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
      
        @EventHandler
         public void onPlayerHit(EntityDamageByEntityEvent event) {
            double AmountDamaged = event.getDamage();
          
            if(event.getDamager() instanceof Player) {
              
              
              
            }
          
      
    
        }
    }
    
    So i basically have a double of the damage i did, now im having trouble with everything else :( Please Help :(
     
  2. Offline

    mkezar

    so like this?

    Code:
    package plugins.mkezar;
    
    import org.bukkit.Bukkit;
    import org.bukkit.OfflinePlayer;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Extract extends JavaPlugin implements Listener {
     
        public void onEnable() {
             Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
     
        @EventHandler
         public void onPlayerHit(EntityDamageByEntityEvent event) {
            double AmountDamaged = event.getDamage();
         
            if(event.getDamager() instanceof Player) {
                e.getDamager().setMaxHealth(AmountDamaged);
             
             
            }
         
     
    
        }
    }
    
    if thats what im supposed to do, why is it giving me an error at the e (e.getDamager, ECT )
     
  3. Offline

    Signatured

    Do you want the health received to extend the 20 heart limit? For example, if I do 4 damage to someone and I have full 20 hearts, should I not have 24 hearts?
     
  4. Offline

    mkezar

    thats exactly what i want.

    bump :p

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

    Signatured

    You first need to get the damage given to the player. Then get the health of the damager. If the damage given plus the damages health is greater than 20, subtract damage given from damagers health, then set the players max health to 20D + whatever you got (remember when they lose health to change the max health accordingly). If its not higher than their health, simply add the damage given to the damagers health.
     
  6. Offline

    567legodude

    Just make a random, if the random number is greater than a certain number, then do event.getFinalDamage() and add that to the players health.
     
Thread Status:
Not open for further replies.

Share This Page