/** * Gets the raw amount of damage caused by the event * * @return The raw amount of damage caused by the event * @see DamageModifier#BASE */ public double getDamage() { return getDamage(DamageModifier.BASE); }
@EventHandler public void damage(EntityDamageEvent e){ int i = e.getDamage(); if(e.getDamager() instanceof Player){ int level = //get players level here float multiplier = (level >= 50 ? (1 + ((1/25) * (level - 50)) : ((1/3) + (1/75) * (level - 1))); e.setDamage(i * multiplier); } }
/** * Gets the amount of damage caused by the event after all damage * reduction is applied. * * @return the amount of damage caused by the event */ public final double getFinalDamage() { double damage = 0; for (DamageModifier modifier : MODIFIERS) { damage += getDamage(modifier); } return damage; }
/** * This method exists for legacy reasons to provide backwards * compatibility. It will not exist at runtime and should not be used * under any circumstances. */ @Deprecated public int _INVALID_getDamage() { return NumberConversions.ceil(getDamage()); }
/** * Runs an EntityDamageEvent and updates {@link org.bukkit.entity.Entity#setLastDamageCause} and * (for a {@link LivingEntity} only) {@link LivingEntity#setLastDamage(double)}. * * @param event the event to run * @param <T> the event's type * @return the completed event */ public <T extends EntityDamageEvent> T onEntityDamage(T event) { T result = callEvent(event); if (!result.isCancelled()) { result.getEntity().setLastDamageCause(result); if (result.getEntity() instanceof LivingEntity) { ((LivingEntity) result.getEntity()).setLastDamage(result.getDamage()); } } return result; }
/** * Gets the raw amount of damage caused by the event * * @return The raw amount of damage caused by the event * @see DamageModifier#BASE */ public double getDamage() { return getDamage(DamageModifier.BASE); }
/** * Gets the amount of damage caused by the event after all damage * reduction is applied. * * @return the amount of damage caused by the event */ public final double getFinalDamage() { double damage = 0; for (DamageModifier modifier : MODIFIERS) { damage += getDamage(modifier); } return damage; }
@Override public Double def(Player player, ItemStack i, EntityDamageEvent event) { return event.getDamage(); }
@Override public double getDamage() { return event.getDamage(); }
public double getDamage() { return event.getDamage(); }
/** * This method exists for legacy reasons to provide backwards * compatibility. It will not exist at runtime and should not be used * under any circumstances. */ @Deprecated public int _INVALID_getDamage() { return NumberConversions.ceil(getDamage()); }
private static Map<DamageModifier, Double> getModifiers(EntityDamageEvent event) { Map<DamageModifier, Double> modifiers = new HashMap<DamageModifier, Double>(); for (DamageModifier modifier : DamageModifier.values()) { modifiers.put(modifier, event.getDamage(modifier)); } return modifiers; }
@Override public PowerResult<Double> run(PowerHitTaken power, Player player, ItemStack i, EntityDamageEvent event) { return power.takeHit(player, i, event.getDamage(), event); } };
@Override public PowerResult<Double> warpResult(PowerResult<Void> overrideResult, PowerHitTaken power, Player player, ItemStack i, EntityDamageEvent event) { return overrideResult.with(event.getDamage()); }
/** * Original/raw damage amount before applying modifiers. This might return * the final damage, in case getting the raw damage isn't implemented. * * @param event * @return */ public static double getOriginalDamage(final EntityDamageEvent event) { try { return event.getDamage(); } catch (Throwable t) { return getRawDamage(event); } }
@EventHandler (priority = EventPriority.HIGHEST) public static void onEntityDamage(EntityDamageEvent e){ Entity entity = e.getEntity(); if(!(entity instanceof LivingEntity)) return; LivingEntity le = (LivingEntity) entity; double armourDamageReduction = e.getDamage(EntityDamageEvent.DamageModifier.ARMOR); double armourPoints = le.getAttribute(Attribute.GENERIC_ARMOR).getValue(); double newReduction = armourPoints * 0.04 * - (e.getDamage() + e.getDamage(EntityDamageEvent.DamageModifier.BLOCKING)); //todo don't hardcode this value e.setDamage (EntityDamageEvent.DamageModifier.ARMOR, newReduction); INSTANCE.debug("Armour points: " + armourPoints + " Reduction: " + armourDamageReduction + " After: " + newReduction, le); }
private double playerHitTaken(Player e, EntityDamageEvent ev) { double ret = ev.getDamage(); for (ItemStack item : e.getInventory().getContents()) { RPGItem ri = ItemManager.toRPGItem(item).orElse(null); if (ri == null) continue; double d = ri.power(e, item, ev, Trigger.HIT_TAKEN); ret = d < ret ? d : ret; } return ret; }
private void onPlayerDamage(EntityDamageEvent event, Player player, Entity damager) { // Cancel all damage in the lobby and spec area if (arena.inLobby(player) || arena.inSpec(player)) { event.setCancelled(true); return; } if (arena.inArena(player)) { // Cancel PvP damage if disabled if (!pvpEnabled && damager instanceof Player && !damager.equals(player)) { event.setCancelled(true); return; } event.setCancelled(false); arena.getArenaPlayer(player).getStats().add("dmgTaken", event.getDamage()); } }
public void apply(EntityDamageEvent event) { double redirectedDamage = calculateRedirectedDamage(event.getFinalDamage()); if (myPet.getStatus() == PetState.Here && myPet.getHealth() - redirectedDamage > 0) { myPet.getEntity().get().damage(redirectedDamage); event.setDamage(event.getDamage() - redirectedDamage); myPet.getEntity().get().getHandle().makeSound(SoundCompat.ENDERMAN_TELEPORT.get(), 0.2F, 1.0F); MyPetApi.getPlatformHelper().playParticleEffect(myPet.getOwner().getPlayer().getLocation().add(0, 1, 0), ParticleCompat.CRIT_MAGIC.get(), 0.5F, 0.5F, 0.5F, 0.1F, 20, 20); MyPetApi.getPlatformHelper().playParticleEffect(myPet.getLocation().get().add(0, 1, 0), ParticleCompat.CRIT.get(), 0.5F, 0.5F, 0.5F, 0.1F, 10, 20); } }